웹 페이지에서 일부 내용을 긁는 Java 프로그램을 작성했습니다. 그것은 매초 초 readWebPage
메서드를 호출하여 내용을 검색합니다. 내가 가지고있는 문제는 첫 번째 읽기 만 실제로 작동한다는 것입니다. 처음 웹 페이지를 읽은 후 InputStream
은 항상 비어 있습니다 (in.ready()
return false
).HttpURLConnection에서 반복적으로 읽는 방법은 무엇입니까?
또한 conn.getContentLength()
은 페이지의 내용이 변경 되었더라도 매번 같은 값을 반환합니다. 프로그램을 다시 시작하면 새 콘텐츠가 제대로 가져 오기됩니다.
내가 무엇을 놓쳤는가? conn
개체에서 새로 고침을 수행해야합니까?
private String readWebpage(HttpURLConnection conn) throws IOException{
conn.connect();
InputStreamReader in = new InputStreamReader((InputStream) conn.getContent());
BufferedReader buffer = new BufferedReader(in);
StringBuilder b = new StringBuilder(conn.getContentLength()+5);
String line;
while ((line=buffer.readLine())!=null){
b.append(line);
}
in.close();
buffer.close();
return b.toString();
}
완료되면 Http Connection을 항상 닫으시겠습니까? –
일단 끝나면'conn.disconnect() '를 호출 해 보았습니다.하지만 차이점을 보이지는 않았습니다. –