解决httpclient出现too many open file
来源:互联网 发布:宋灭亡王安石 知乎 编辑:程序博客网 时间:2024/06/05 09:32
在httpclient请求是 如果在某段时间内频繁使用httpclient请求会会出现
java.net.SocketException: Too many open filesat java.net.Socket.createImpl(Socket.java:397)at java.net.Socket.<init>(Socket.java:371)at java.net.Socket.<init>(Socket.java:249)at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79)at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:121)at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)at common.BaseAction.reqGet(BaseAction.java:111)at android_interface.classification.ClassificationInterface.getAllFenlei(ClassificationInterface.java:95)
这是因为:
HttpClient建立Socket时 ,method.releaseConnection()并没有真正关闭连接,而是将该连接提交给 MultiThreadedHttpConnectionManager,等待复用。
而http的连接是等待timeout才会自动断开的,所以,当用完系统的句柄后,自然会报Too many open files。
解决方法
method.addRequestHeader( "Connection", "close");
client.getParams().setBooleanParameter( "http.protocol.expect-continue" , false );
HttpClient client = new HttpClient();// 设置关闭client.getParams().setBooleanParameter( "http.protocol.expect-continue" , false );client.getParams().setContentCharset("utf-8");HttpMethod method = new GetMethod(url);// 设置关闭method.addRequestHeader( "Connection", "close");try {client.executeMethod(method);result = method.getResponseBodyAsString();} catch (Exception e) {log.error(" httpclient 请求 " + url +"异常 " , e);}finally{method.releaseConnection();}
0 0
- 解决httpclient出现too many open file
- linux 中的Too many open file要如何解决
- 解决linux下too many open file问题
- 解决Linux中出现Too many open files
- 解决高并发中出现Too many open files问题
- Linux Too Many Open File 异常处理
- Too many open files 错误解决
- Too many open files 问题的解决
- Too many open files 错误解决
- Too many open files 问题的解决
- 服务器 too many open files 解决
- Too many open files 问题的解决
- Too many open files 问题的解决
- Too many open files 错误解决
- lucene(too many open files错误解决)
- 解决Too many open files问题
- linux服务器修改open files参数 解决too many file opened
- Mac Intellij Application run error for too many file open or 解决文件打开数过多
- {dede:sql 中如何传入参数
- Android working with Volley Library
- 字符串转十六进制字节数组
- 通讯录详解
- 使用JavaMail收发邮件
- 解决httpclient出现too many open file
- leetcode:Longest Consecutive Sequence
- 关于Collections.unmodifiableMap的一些理解
- Linux后台开发应该具备技能
- iOS中GET请求的同步与异步
- 判断是否是手机请求
- App Store审核指南中文版(2014.9.10更新):新增Apple Pay相关内容
- 关于使用jquery mobile popup弹框阴影问题
- 第一个小爬虫-------下载jpg图片