【发布时间】:2011-03-11 20:59:32
【问题描述】:
我编写了一个 Java 程序,它可以从网页中抓取一些内容。它每隔几秒调用一次readWebPage 方法来检索内容。我遇到的问题是只有第一次读取才有效。在我第一次阅读网页后,InputStream 总是显示为空(in.ready() 返回false)。
此外,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 连接?
-
我已经尝试在完成后致电
conn.disconnect(),但似乎没有什么不同。
标签: java http web-scraping httpurlconnection