首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache-HttpComponents:套接字关闭错误

Apache-HttpComponents:套接字关闭错误
EN

Stack Overflow用户
提问于 2013-05-29 01:38:54
回答 1查看 4.4K关注 0票数 3

我正在编写一个Java程序,它使用Apache-HttpComponents加载页面并将其HTML打印到控制台;然而,在抛出以下错误之前,该程序仅打印部分HTML:Exception in thread "main" java.net.SocketException: socket closed.每次我运行该程序时,在异常之前显示的HTML部分完全相同,并且错误发生在这个使用谷歌、雅虎和Craigslist的简化示例中:

代码语言:javascript
复制
String USERAGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22";
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://www.craigslist.org");
get.setHeader(HTTP.USER_AGENT,USERAGENT);
HttpResponse page = client.execute(get);
get.releaseConnection();
InputStream stream = page.getEntity().getContent();
try{
    BufferedReader br = new BufferedReader(new InputStreamReader(stream));
    String line = "";
    while ((line = br.readLine()) != null){
        System.out.println(line);
    }
}
finally{
    EntityUtils.consume(page.getEntity());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-29 01:49:17

我发现只有在我读完HTML后才能调用get.releaseConnection();。在EntityUtils.consume(page.getEntity());修复上述代码后立即调用它。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16798214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档