`
m635674608
  • 浏览: 5029588 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HttpClient4.X Invalid use of SingleClientConnManager: connection still allocated

 
阅读更多

HttpClient4.X Invalid use of SingleClientConnManager: connection still allocated问题

 

项目用到了httpclient4.1开发。在多线程的情况下,异常报

 

Invalid use of SingleClientConnManager: connection still allocated

 

从国外的一张帖子看到,httpclient默认使用的是SingleClientConnManager,但在并发环境下最好使用ThreadSafeClientConnManager。代码如下:

 

HttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager());

 

HttpGet httpGet = null;

 

InputStream in = null;

 

try {

 

httpGet = new HttpGet(url);

 

HttpResponse response = client.execute(httpGet);

 

HttpEntity responseEntity = response.getEntity();

 

if (responseEntity != null) {

 

in = response.getEntity().getContent();

 

return EntityUtils.toByteArray(responseEntity);

 

}

 

} finally {

 

if (httpGet != null) {

 

httpGet.abort();

 

}

 

IOUtils.closeQuietly(in);

 

}

 

return null;

 

这样就可以避免发生异常,感谢国外的这个帖子

 

http://old.nabble.com/HttpClient-instance-management-td24185137.html

 

 

 

http超时处理:

 

使用是apache的HttpClient:

DefaultHttpClient:
请求超时
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 60000);
读取超时
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 60000);

HttpClient
HttpClient httpClient=new HttpClient();
链接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60000); 
读取超时
httpClient.getHttpConnectionManager().getParams().setSoTimeout(60000)

分享到:
评论

相关推荐

    HttpClient 3.x to HttpComponents HttpClient 4.x

    例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....

    httpclient 4.X版本下载有的带源码包

    2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...

    可用org.apache.commons.httpclient-3.1.0.jar.zip

    import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....

    httpclient-4.5.12-API文档-中文版.zip

    赠送jar包:httpclient-4.5.12.jar; 赠送原API文档:httpclient-4.5.12-javadoc.jar; 赠送源代码:httpclient-4.5.12-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.12.pom; 包含翻译后的API文档:...

    HTTPClient 4.3.X

    描述中提到的链接指向了一个ITEYE博客,虽然内容未给出,但可以推测博主可能分享了关于使用HTTPClient 4.3.X的一些经验,可能包括配置,最佳实践,或者是遇到的问题及解决方案。 标签 "源码" 暗示我们可能会讨论到...

    httpclient4.x官方范例

    在4.x版本中,HTTPClient进行了重大更新,与之前的3.x版本相比,它引入了更多的功能、优化和改进。本文将深入探讨HTTPClient 4.x的核心特性,并基于提供的"httpclient4.1_examples"示例文件,解析如何使用这个库进行...

    httpclient-4.5.13-API文档-中文版.zip

    赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...

    httpclient4.3.x及其依赖jar包

    《HttpClient 4.3.x详解及其依赖分析》 HttpClient是一个由Apache基金会开发的Java库,主要用于执行HTTP请求。HttpClient 4.3.x是该库的一个重要版本,它提供了丰富的功能和改进,使得开发者能够更方便地与Web...

    commons-httpclient-3.1jar包

    4. 连接池:使用SingleClientConnManager或MultiThreadedHttpConnectionManager,实现连接的复用,提高性能。 五、常见问题与解决方案 1. 连接超时:可以调整HttpConnectionManager的超时参数,避免请求等待过长。 ...

    httpclientDemo(4.x与4以下的版本)例子

    这个"HttpclientDemo(4.x与4以下的版本)"示例显然涵盖了HttpClient在不同版本间的使用方法,特别是4.x版本和4.x之前的版本之间的差异。在本文中,我们将深入探讨HttpClient的基本概念、主要功能以及在不同版本中的...

    httpclient-4.5.13-API文档-中英对照版.zip

    赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...

    org.apache.commons.httpclient-3.1.jar

    《Apache Commons HttpClient 3.1:HTTP客户端编程的基石》 ...然而,需要注意的是,HttpClient 3.1已不再维护,最新的稳定版本为HttpClient 4.x,对于新项目建议使用更现代的版本以获取更好的性能和兼容性。

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    虽然`commons-httpclient-3.0.jar`是一个经典版本,但随着Java的发展,Apache社区已经推出了更现代的HttpClient 4.x系列,提供了更多改进和优化,如更好的线程安全、更丰富的API以及对HTTP/2的支持。因此,建议在新...

    httpclient-4.5.5-API文档-中文版.zip

    赠送jar包:httpclient-4.5.5.jar; 赠送原API文档:httpclient-4.5.5-javadoc.jar; 赠送源代码:httpclient-4.5.5-sources.jar; 包含翻译后的API文档:httpclient-4.5.5-javadoc-API文档-中文(简体)版.zip ...

    Java HttpClient 4.x Jar包

    含tutorial,commons-logging-1.1.1, commons-codec-1.4-bin.zip, httpcomponents-client-4.0.3-bin.zip, httpcomponents-core-4.1-bin.zip

    httpclient-4.2.5-API文档-中文版.zip

    赠送jar包:httpclient-4.2.5.jar; 赠送原API文档:httpclient-4.2.5-javadoc.jar; 赠送源代码:httpclient-4.2.5-sources.jar; 赠送Maven依赖信息文件:httpclient-4.2.5.pom; 包含翻译后的API文档:httpclient...

    httpClient组合包.zip

    此外,HttpClient还支持异步操作,可以在多线程环境中高效地处理并发请求。 2. **httpcore-4.4.12.jar**:这是HttpClient的核心库,包含了HTTP协议的基本组件,如连接管理、请求和响应模型、编码器和解码器等。...

    java调用net开发的webservice实例

    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:369) at org.codehaus....

    ribbon-httpclient-2.2.5.jar

    ribbon-httpclient-2.2.5.jar

    HttpClient4.x手动释放底层HTTP连接[借鉴].pdf

    httpclient.getConnectionManager().shutdown(); } } } ``` 在上面的代码中,我们首先创建了一个HttpClient实例,然后执行了一个HttpGet请求接着我们从响应中获取了HttpEntity,接着我们使用输入流读取响应的...

Global site tag (gtag.js) - Google Analytics