2012-01-09 3 views
1

java.io.InputStream를 돌려주는 타임 아웃의 신뢰할 수있는 http 페이지를 읽어 들이기위한 클래스가 있습니까?
java.net.URLConnection을 시도했지만 안정적인 시간 초과가 없습니다 (시간 초과로 설정하는 데 더 많은 시간이 걸립니다)? 내 코드는 여기에 있습니다 : 당신은 HTTP 페이지를 읽을 아파치 HttpClient를 사용할 수 있습니다`java.io.InputStream`을 돌려주는 신뢰할 수있는 타임 아웃의 http 페이지를 읽어들이는 클래스

 URLConnection con = url.openConnection(); 
     con.setConnectTimeout(2000); 
     con.setReadTimeout(2000); 
     InputStream in = con.getInputStream(); 

답변

1

, 그것은 또한 HTTP parser.check이 더 reference about httpclient에 대한 있습니다. 이런 API를 사용하여 InputStream 객체를 얻을 수있다.

HttpClient httpclient = new DefaultHttpClient(); 

// Prepare a request object 
HttpGet httpget = new HttpGet("http://www.apache.org/"); 

// Execute the request 
HttpResponse response = httpclient.execute(httpget); 

// Examine the response status 
System.out.println(response.getStatusLine()); 

// Get hold of the response entity 
HttpEntity entity = response.getEntity(); 

// If the response does not enclose an entity, there is no need 
// to worry about connection release 
if (entity != null) { 
    InputStream instream = entity.getContent(); 

시간 초과 부분은 네트워크에 따라 다르며 Java 코드에서 그다지 할 수 없습니다.

2

제한 시간이 작동하지 않는 이유는 연결이 설정된 후 제한 시간을 설정하거나 잘못된 설정을 사용하고 있기 때문입니다. 그것은

는 "이 방법의 일부 비표준 구현이 지정된 타임 아웃을 무시 ... 또한 당신의 URLConnection의"비표준 "버전 사용하는 것이 가능하다. 읽기 시간 제한 설정을 보려면, getReadTimeout() 문의하시기 바랍니다 . " (또는 getConnectTimeout())

당신은 아파치 HttpClient를 라이브러리를 사용, 또는 실제 코드 우리는 당신이 더 나은 답을 줄 수의 관련 부분 ...


을 게시합니다.

+0

안녕하세요, Sun의 버전을 사용하고 있으며 URL 객체의 openConnection() 메소드에서 URLConnection 객체를 만든 후'setConnectTimeout' 및'setReadTimeout' 메소드를 사용하여 시간 초과를 설정하고 있습니다. – RYN

+0

코드를 표시하십시오 ... –

+0

질문에 코드를 추가했습니다. – RYN