如何在Java中使函数“超时”?
发布时间:2020-12-15 05:15:44 所属栏目:Java 来源:网络整理
导读:private String indexPage(URL currentPage) throws IOException { String content = ""; is = currentPage.openStream(); content = new Scanner( is ).useDelimiter( "Z" ).next(); return content;} 这是我目前正在抓取网页的功能.问题所在的功能: con
private String indexPage(URL currentPage) throws IOException { String content = ""; is = currentPage.openStream(); content = new Scanner( is ).useDelimiter( "Z" ).next(); return content; } 这是我目前正在抓取网页的功能.问题所在的功能: content = new Scanner( is ).useDelimiter( "Z" ).next(); 如果网页没有回答或需要很长时间才能回答,我的主题就会挂在上面一行.如果加载完全加载该流需要超过5秒的时间,那么中止此功能的最简单方法是什么? 提前致谢! 解决方法
如果您在网络连接上启用连接和读取超时,而不是单独使用单独的观察程序线程,则可能就足够了(尽管不能完全满足您的要求),例如:
URL url = new URL("..."); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setReadTimeout(10000); InputStream is = conn.getInputStream(); 如果连接到服务器的时间超过5秒(5000毫秒),或者您必须在实际读取的任何内容块之间等待超过10秒(10000毫秒),则此示例将失败.但是,它不会限制您检索页面所需的总时间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |