httpClient多线程问题
问题: 今天线上出现一个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多线程问题相关推荐
- httpClient多线程请求
使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以 ...
- HttpClient在多线程环境下踩坑总结
HttpClient在多线程环境下踩坑总结 问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状 ...
- HttpClient 学习整理
HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的实现,发现这个开源项目之后就有点眉目了,令人头痛的cookie问题还是有办法解决滴.在网上整理了一些东西,写得很好,寄放在这里 ...
- HttpClient 学习整理(转)
来自 http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的 ...
- 用HttpClient来模拟浏览器GET POST
用HttpClient来模拟浏览器GET POST 作者:jaddy0302 日期:2006-12-21 一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用 ...
- HttpClient 解释
HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=new DefaultHttpClient(); 发送GET请 ...
- diamond源码阅读-diamond-client
为什么80%的码农都做不了架构师?>>> 读取数据 DiamondManager manager = new DefaultDiamondManager("DEFAU ...
- 基于Java学院网页的搜索引擎设计和实现
项目运行部署: 首先导入项目MyHeritrix 然后把jar包加到项目中 运行类Heritrix 访问地址http://localhost:8080/index.jsp 创建一个job 6.然后写n ...
- java模拟HTTP请求(集合了网上搜来的各种)
Java发送http请求 (get 与 post方法请求) Java发送http请求 (get 与post方法请求),以下代码经本人亲自调试可用!可以直接使用之. 注意:通过BufferedReade ...
最新文章
- Android 本地css引用
- OAuth2.0 工作流程
- 【问链财经-区块链基础知识系列】 第四十六课 区块链如何作用于医药行业
- 【渝粤题库】国家开放大学2021春1107传感器与测试技术题目
- takePic and Videos
- python编程学习_使用EduBlocks轻松学习Python编程
- 快看漫画个性化推荐探索与实践.pdf(附下载链接)
- 拼多多2018校招内推编程-大整数相乘
- layui中全选反选_jQuery实现全选,反选,全不选
- n9 android rom,美如画N9盒子线刷固件rom升级包下载(全志H8芯片)
- 约瑟夫问题_公式原理详解
- 【技术教程】网盘扩容技术原理+爆盘免删修复原理解析!扩容爆盘如何免删修复?
- 平时杂技,串口摄像头+portmon.exe
- (附源码)node.js学生钟点工管理系统 毕业设计 290011
- php程序设置ip黑名单,网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)
- 学习Python处理Excel 难度1级别 多表合并、数据透视表、拆分合并单元格并获得一维表
- 安全检测80端口Web服务攻击痕迹(上)
- 为什么选择量化交易?
- html 的函数写法,react中函数的不同写法的区别是什么?
- cookie获取和钓鱼攻击演示
热门文章
- TCPView for Windows
- JS如何调用CSS样式表
- Android Display buffer_handle_t的定义
- [zz]Ubuntu10.04源 更新源列表
- NIS、NFS 與 Autofs 整合應用
- 黄聪:分享 SQL Server 2005 分区实现教程
- 商务之路有多远,贿赂就有多远吗? 续一
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
- 分布式消息队列 — RabbitMQ(1)
- Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别...