使用httpclient中EntityUtils类解析entity遇到socket closed错误的原因
来源:互联网 发布:php工作前景怎么样 编辑:程序博客网 时间:2024/06/08 05:56
本人在使用httpclient做接口测试的时候,最近程序偶然报socket closed错误,上周经过排查发现是request.releaseConnection()这个方法搞得鬼,也是自己学艺不精,没有真正理解方法的含义,改掉之后其他接口就没有出现过这个问题,今天又遇到了,又重新排查了自己的方法,发现还有一种导致socket closed的原因,因为我的响应对象创建时用的是CloseableHttpResponse类,所以需要关闭,在某些时候response太大可能导致使用EntityUtils.toString(entity)解析实体的时候出错,个人理解是由于response的并未完全解析到entity里面时已经执行了close()方法导致的,试着把close()方法后置,完美解决问题。
下面是我的错误代码片段:
try {response.close();} catch (IOException e2) {output("响应关闭失败!", e2);}data_size = entity.getContentLength();// 获取相应数据大小if (data_size == -1) {// 如果为-1,则重置data_sizedata_size = 0;}String content = null;try {content = EntityUtils.toString(entity);// 用string接收响应实体EntityUtils.consume(entity);// 消耗响应实体} catch (ParseException e1) {output("解析响应实体异常!", e1);} catch (IOException e1) {output("解析响应实体时java IO 异常!", e1);} // 解析响应
下面是修改之后的代码片段:
String content = null;try {content = EntityUtils.toString(entity);// 用string接收响应实体EntityUtils.consume(entity);// 消耗响应实体} catch (ParseException e1) {output("解析响应实体异常!", e1);} catch (IOException e1) {output("解析响应实体时java IO 异常!", e1);} // 解析响应try {response.close();} catch (IOException e2) {output("响应关闭失败!", e2);}
阅读全文
0 0
- 使用httpclient中EntityUtils类解析entity遇到socket closed错误的原因
- httpclient遇到socket closed解决办法
- 使用HttpClient时遇到的 java.net.SocketException: Socket closed异常
- 关于使用Gson解析entity中遇到的问题
- EntityUtils.toString(entity)
- socket is closed异常的原因及其解决方法
- socket中10044错误原因
- 关于C++中使用socket accept错误值为10022的一个原因
- Socket 中 常见的返回错误解析
- 前端学习中遇到的错误及原因
- Cookie-使用HtmlUnit/HttpClient中遇到的问题
- 出现 JSP页面中使用JSTL标签无法解析 错误的原因及解决方法
- 踩坑记:httpComponents 的 EntityUtils
- socket遇到错误直接退出原因和解决办法
- 报这个错误的原因:No identifier specified for entity:
- 报这个错误的原因:No identifier specified for entity:
- Java-HttpClient-EntityUtils获取网络图片
- libero 使用中遇到的错误
- 文章标题
- 看论文,做笔记系列(1)——Network in Network
- Python操作Redis数据库
- BZOJ 2190 [SDOI2008]仪仗队 欧拉函数
- 我的研究生考后感
- 使用httpclient中EntityUtils类解析entity遇到socket closed错误的原因
- java实现发牌洗牌功能
- 用JAVA实现Vigenre加密
- CSS预处理
- struts-config.xml详解配置文件
- Python时间序列案例分析实战--奶牛产奶量预测
- 链接器详解
- nginx
- Android热修复框架Tinker初体验