问题: 今天线上出现一个httpclient的问题:

java.lang.IllegalStateException: Connection is not open
at org.apache.commons.httpclient.HttpConnection.assertOpen(HttpConnection.java:1
276) at org.apache.commons.httpclient.HttpConnection.getResponseInputStream(H
ttpConnection.java:857) at org.apache.commons.httpclient.HttpMethodBase.readResponseHeaders(Http
MethodBase.java:1790) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodB
ase.java:1592) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.j
ava:995) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Htt
pMethodDirector.java:397) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
thodDirector.java:170) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:396) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:324) at com.kingpoint.BiDownTestCookie.getByPostMethod(BiDownTestCookie.java:
172) at com.kingpoint.ClickIE.run(ClickIE.java:27) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) 

场景:我通过多线程调用外部http服务,但是我的httpClient是一个单例,当某个请求返回以后,还有的请求用的是同样的单例,而上一个请求的连接我已经关闭了,所以导致connection is not open。

解决方案:

1. 请求加锁

2. 每次new HttpClient(); 保证独立。

参考:http://www.iteye.com/problems/63688

httpClient多线程问题相关推荐

  1. httpClient多线程请求

    使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以 ...

  2. HttpClient在多线程环境下踩坑总结

    HttpClient在多线程环境下踩坑总结 问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状 ...

  3. HttpClient 学习整理

    HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的实现,发现这个开源项目之后就有点眉目了,令人头痛的cookie问题还是有办法解决滴.在网上整理了一些东西,写得很好,寄放在这里 ...

  4. HttpClient 学习整理(转)

    来自 http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的 ...

  5. 用HttpClient来模拟浏览器GET POST

    用HttpClient来模拟浏览器GET POST 作者:jaddy0302 日期:2006-12-21       一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用 ...

  6. HttpClient 解释

    HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=new DefaultHttpClient(); 发送GET请 ...

  7. diamond源码阅读-diamond-client

    为什么80%的码农都做不了架构师?>>>    读取数据 DiamondManager manager = new DefaultDiamondManager("DEFAU ...

  8. 基于Java学院网页的搜索引擎设计和实现

    项目运行部署: 首先导入项目MyHeritrix 然后把jar包加到项目中 运行类Heritrix 访问地址http://localhost:8080/index.jsp 创建一个job 6.然后写n ...

  9. java模拟HTTP请求(集合了网上搜来的各种)

    Java发送http请求 (get 与 post方法请求) Java发送http请求 (get 与post方法请求),以下代码经本人亲自调试可用!可以直接使用之. 注意:通过BufferedReade ...

最新文章

  1. Android 本地css引用
  2. OAuth2.0 工作流程
  3. 【问链财经-区块链基础知识系列】 第四十六课 区块链如何作用于医药行业
  4. 【渝粤题库】国家开放大学2021春1107传感器与测试技术题目
  5. takePic and Videos
  6. python编程学习_使用EduBlocks轻松学习Python编程
  7. 快看漫画个性化推荐探索与实践.pdf(附下载链接)
  8. 拼多多2018校招内推编程-大整数相乘
  9. layui中全选反选_jQuery实现全选,反选,全不选
  10. n9 android rom,美如画N9盒子线刷固件rom升级包下载(全志H8芯片)
  11. 约瑟夫问题_公式原理详解
  12. 【技术教程】网盘扩容技术原理+爆盘免删修复原理解析!扩容爆盘如何免删修复?
  13. 平时杂技,串口摄像头+portmon.exe
  14. (附源码)node.js学生钟点工管理系统 毕业设计 290011
  15. php程序设置ip黑名单,网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)
  16. 学习Python处理Excel 难度1级别 多表合并、数据透视表、拆分合并单元格并获得一维表
  17. 安全检测80端口Web服务攻击痕迹(上)
  18. 为什么选择量化交易?
  19. html 的函数写法,react中函数的不同写法的区别是什么?
  20. cookie获取和钓鱼攻击演示

热门文章

  1. TCPView for Windows
  2. JS如何调用CSS样式表
  3. Android Display buffer_handle_t的定义
  4. [zz]Ubuntu10.04源 更新源列表
  5. NIS、NFS 與 Autofs 整合應用
  6. 黄聪:分享 SQL Server 2005 分区实现教程
  7. 商务之路有多远,贿赂就有多远吗? 续一
  8. 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
  9. 分布式消息队列 — RabbitMQ(1)
  10. Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别...