2013-05-30 2 views
5

내 응용 프로그램에서 URL을 연결하고 결과 XML 응답을 구문 분석하려면 다음을 사용하고 있습니다. 내 문제는 openStream() 메서드에서 제한 시간을 설정하여 약 5 초만 대기하고 응답을받지 못하면 실패하는 것입니다. 그것은 단지 기다리고 기다리고 있습니다. 이견있는 사람?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()));   

답변

6

알아 냈어. URLConnection을 사용하고 setConnectionTimeout 및 setReadTimeout 메서드를 호출하면 원하는 결과를 얻을 수 있습니다. 업데이트 된 코드 아래에 ....

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

당신이 URL을 변경하려는 경우 :

website.openConnection().setReadTimeout(5000); 
website.openConnection().setConnectTimeout(5000); 
관련 문제