天天看点

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");