2013-05-30 44 views
5

Tôi đang sử dụng ứng dụng sau để kết nối với URL và phân tích cú pháp phản hồi XML. Vấn đề của tôi là tôi không thể tìm ra cách để đặt thời gian chờ trên phương thức openStream() để nó chỉ chờ khoảng 5 giây và nếu không nhận được phản hồi nào thì không thành công. Nó cứ tiếp tục chờ đợi và chờ đợi. Có suy nghĩ gì không?Đặt thời gian chờ trên URL.openStream() Android

URL website = new URL(sb.toString());       
SAXParserFactory spf = SAXParserFactory.newInstance(); 
SAXParser sp = spf.newSAXParser(); 
XMLReader xr = sp.getXMLReader(); 
DataHandler h = new DataHandler(); 
xr.setContentHandler(h);    
xr.parse(new InputSource(website.openStream()));   

Trả lời

6

Đã tìm ra. Bằng cách sử dụng URLConnection và gọi phương thức setConnectionTimeout và setReadTimeout, tôi có thể đạt được những gì tôi muốn. đang cập nhật dưới đây ....

URLConnection conn = new URL(sb.toString()).openConnection(); 
conn.setConnectTimeout(5000); 
conn.setReadTimeout(5000); 
SAXParserFactory spf = SAXParserFactory.newInstance(); 
SAXParser sp = spf.newSAXParser(); 
XMLReader xr = sp.getXMLReader(); 
DataHandler h = new DataHandler(); 
xr.setContentHandler(h);    
xr.parse(new InputSource(conn.getInputStream()));  
0

nếu bạn muốn thay đổi nó trên URL:

website.openConnection().setReadTimeout(5000); 
website.openConnection().setConnectTimeout(5000); 
Các vấn đề liên quan