來自:http://www.54chen.com/java-ee/java-httpclient-too-many-open-files.html
實際上,HttpClient建立Socket時 ,post.releaseConnection()并沒有真正關閉連接配接,而是将該連接配接送出給 MultiThreadedHttpConnectionManager,等待複用。
而http的連接配接是等待timeout才會自動斷開的,是以,當用完系統的句柄後,自然會報Too many open files
解決辦法:
設定post方法的header,增加紅色字型部分的配置:
HttpClient client = new HttpClient();
client.getParams().setBooleanParameter(
"http.protocol.expect-continue", false);
PostMethod method = new PostMethod(url);
method.addRequestHeader("Connection", "close");