2013-05-30 19 views
5

Bir URL'ye bağlanmak ve ortaya çıkan XML yanıtını ayrıştırmak için uygulamasında aşağıdakileri kullanıyorum. Sorunum, openStream() yönteminde bir zaman aşımı ayarlamanın bir yolunu anlayamıyorum, böylece yalnızca 5 saniye bekler ve yanıt alınmazsa başarısız olur. Beklemeye ve beklemeye devam ediyor. Düşüncesi olan var mı?URL.openStream() üzerinde zaman aşımı ayarla 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()));   

cevap

6

Figured out out. URLConnection kullanarak ve setConnectionTimeout ve setReadTimeout yöntemlerini çağırarak istediğimi başarabiliyorum. Güncelleme kod aşağıda ....

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

da URL'yi değiştirmek isterseniz:

website.openConnection().setReadTimeout(5000); 
website.openConnection().setConnectTimeout(5000);