Exception in thread “main” java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
只要最后加上EntityUtils.consume(response.getEntity());就可以了!
import java.io.IOException;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ResponseHandler;
import org.apache.http.util.EntityUtils;
public class SimpleResponseHandler implements ResponseHandler<Result> {
private HttpClient httpClient = null;
private String encoding = null;
public SimpleResponseHandler(HttpClient httpClient) {
this.httpClient = httpClient;
}
public Result handleResponse(HttpResponse response) throws IOException {
int statuscode = response.getStatusLine().getStatusCode();
if (isRedirectStatus(statuscode)) {
Header header = response.getFirstHeader("location");
if (header != null) {
String newuri = header.getValue();
if ((newuri == null) || (newuri.equals("")))
newuri = "/";
if (response.getEntity() != null)
EntityUtils.consume(response.getEntity());
return httpClient.doGet(newuri);
}
}
HttpEntity entity = response.getEntity();
if (entity != null) {
Result result = new Result(EntityUtils.toString(entity, encoding));
EntityUtils.consume(entity);
return result;
}
return null;
}
private boolean isRedirectStatus(int statuscode) {
return (statuscode == HttpStatus.SC_MOVED_TEMPORARILY) || (statuscode == HttpStatus.SC_MOVED_PERMANENTLY)
|| (statuscode == HttpStatus.SC_SEE_OTHER) || (statuscode == HttpStatus.SC_TEMPORARY_REDIRECT);
}
}
分享到:
相关推荐
httpclient4.1.2 jar包
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
httpclient4.1.2.zip
activation.jar、commons-beanutils-1.8.3.jar、httpclient-4.1.2.jar、httpclient-cache-4.1.2.jar、httpcore-4.1.2.jar、httpmime-4.1.2.jar、json-lib-2.4-jdk15.jar、log4j.jar、mail.jar等
赠送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文档:...
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....
只是jar包
httpclient jersey所需要的全部jar包,版本是4.1.2,有需要就下载吧
赠送jar包:httpclient-4.5.6.jar; 赠送原API文档:httpclient-4.5.6-javadoc.jar; 赠送源代码:httpclient-4.5.6-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.6.pom; 包含翻译后的API文档:httpclient...
httpClient请求工具类,适合多个系统间的数据请求
赠送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.1.2的中英文文档
赠送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相关的JAR包 兼容新浪的SAE服务器
赠送jar包:httpclient-4.5.10.jar; 赠送原API文档:httpclient-4.5.10-javadoc.jar; 赠送源代码:httpclient-4.5.10-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.10.pom; 包含翻译后的API文档:...
赠送jar包:httpclient-4.4.jar; 赠送原API文档:httpclient-4.4-javadoc.jar; 赠送源代码:httpclient-4.4-sources.jar; 赠送Maven依赖信息文件:httpclient-4.4.pom; 包含翻译后的API文档:httpclient-4.4-...
httpclient-4.1.2
赠送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文档:...