SimpleHttpConnectionManager被错误使用。请确保总是调用HttpMethod.releaseConnection(),并且每次只有一个线程和/或方法在使用此连接管理器。
有人知道为什么会出现这个错误,并导致我要下载的文件失败、重试或下载不完整吗?
谢谢!
SimpleHttpConnectionManager被错误使用。请确保总是调用HttpMethod.releaseConnection(),并且每次只有一个线程和/或方法在使用此连接管理器。
有人知道为什么会出现这个错误,并导致我要下载的文件失败、重试或下载不完整吗?
谢谢!
确保不要使用SimpleHttpConnectionManager在多个线程中创建和使用连接,简单的连接管理器并不适用于此场景-它总是返回相同的连接,且不满足线程安全性。
在多线程环境中,使用一个使用连接池的不同管理器。请参见MultiThreadedHttpConnectionManager。
我不想为此负责,但是根据Eyal Schneider的回答,可以在Vincent de Villers博客中找到关于使用MultiThreadedHttpConnectionManager的更多信息。
如果链接消失,以下代码片段供参考:
HttpClient httpclient = new HttpClient(new MultiThreadedHttpConnectionManager());
GetMethod httpget = new GetMethod("http://www.myhost.com/");
try {
httpclient.executeMethod(httpget);
Reader reader = new InputStreamReader(
httpget.getResponseBodyAsStream(), httpget.getResponseCharSet());
// consume the response entity
} finally {
httpget.releaseConnection();
}