【发布时间】:2011-01-23 18:35:58
【问题描述】:
我对一堆 URL 进行了循环,对于每个 URL,我都在执行以下操作:
private String doQuery(String url) {
HttpGet httpGet = new HttpGet(url);
setDefaultHeaders(httpGet); // static method
HttpResponse response = httpClient.execute(httpGet); // httpClient instantiated in constructor
int rc = response.getStatusLine().getStatusCode();
if (rc != 200) {
// some stuff...
return;
}
HttpEntity entity = response.getEntity();
if (entity == null) {
// some stuff...
return;
}
// process the entity, get input stream etc
}
第一个查询没问题,第二个抛出这个异常:
线程“main”中的异常 java.lang.IllegalStateException: 无效使用 SingleClientConnManager:连接 仍然分配。确保释放 分配前的连接 另一个。在 org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199) 在 org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173)......
这只是一个简单的单线程应用程序。如何释放此连接?
【问题讨论】:
标签: java connection apache-httpclient-4.x