java报错
在使用HttpClient时,调用短信接口报错:
Address already in use:connect
解决办法
方法一:
调用http请求工具类,修改
finnally里面增加关闭连接
post.releaseConnection();
PostMethod post = null;
try {
HttpClient httpclient = new HttpClient();
post = new PostMethod(url);
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, charset);
if (objects != null && (objects.length % 2 == 0)) {
Map<String, Object> params = MapUtils.instanceObj(objects);
for (Map.Entry<String, Object> entry : params.entrySet()) {
post.addParameter(entry.getKey() + "", entry.getValue() + "");
}
}
httpclient.executeMethod(post);
info = new String(post.getResponseBody(), charset);
log.info("返回的信息:" + info);
} catch (Exception e) {
e.printStackTrace();
log.error("调用http出错1:" + e.getMessage(), e);
}finally {
if(post != null) {
try {
post.releaseConnection();
} catch (Exception e2) {
log.error("调用http出错2:" + e2.getMessage(), e2);
}
}
}
方法二(推荐):
升级HttpClient 为4版本或以上
增加:
post.setRequestHeader("Connection", "close");
方法三(不推荐):
1、打开注册表:regedit
2、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters
3、新建 DWORD值,name:TcpTimedWaitDe,value:30(十进制) –> 设置为30秒,默认是240秒
4、新建 DWORD值,name:MaxUserPort,value:65534(十进制) –> 设置最大连接数65534 5、重启系统