天天看點

httpclient操作引發Too many open files

來自: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");