private String indexPage(URL currentPage) throws IOException {
String content = "";
is = currentPage.openStream();
content = new Scanner( is ).useDelimiter( "\\Z" ).next();
return content;
}
Run Code Online (Sandbox Code Playgroud)
这是我目前正在抓取网页的功能.问题所在的功能:
content = new Scanner( is ).useDelimiter( "\\Z" ).next();
Run Code Online (Sandbox Code Playgroud)
如果网页没有回答或需要很长时间才能回答,我的主题就会挂在上面一行.如果加载完全加载该流需要超过5秒的时间,那么中止此功能的最简单方法是什么?
提前致谢!
如果您在网络连接上启用连接和读取超时,而不是与单独的观察者线程挣扎,对您来说可能就足够了(尽管不能完全满足您的要求),例如:
URL url = new URL("...");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(10000);
InputStream is = conn.getInputStream();
Run Code Online (Sandbox Code Playgroud)
如果连接到服务器的时间超过5秒(5000毫秒),或者您必须在实际读取的任何内容块之间等待超过10秒(10000毫秒),则此示例将失败.但是,它不会限制您检索页面所需的总时间.
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |