我很简单。
代码:
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setMaxTotal(200);
cm.closeExpiredConnections();
cm.closeIdleConnections(0, TimeUnit.SECONDS);
cm.setDefaultMaxPerRoute(50);
HttpHost localhost = new HttpHost(proxyStr, 80);
cm.setMaxPerRoute(new HttpRoute(localhost), 50);
HttpHost proxy = new HttpHost(ip, port);
routePlanner = new DefaultProxyRoutePlanner(proxy);
httpclient = HttpClients.custom()
.setConnectionManager(cm)
.setRetryHandler(new DefaultHttpRequestRetryHandler(0, true))
.setDefaultCookieStore(cookieStore)
.setRoutePlanner(routePlanner)
.setConnectionReuseStrategy(new NoConnectionReuseStrategy())
.build();
HttpPost httpPost = new HttpPost("https://*******);
List<NameValuePair> data = new ArrayList<NameValuePair>();
data.add(new BasicNameValuePair("DATA1", ***));
data.add(new BasicNameValuePair("DATA2", ***));
try {
httpPost.setEntity(new UrlEncodedFormEntity(data, HTTP.ISO_8859_1));
} catch (Exception e) {
}
CloseableHttpResponse response2 = null;
try {
response2 = httpclient.execute(httpPost);
} catch(Exception e)...
错误:
2018年1月12日上午8:43:40 org.apache.http.impl.execchain.RetryExec执行 INFO:处理{tls}请求时遇到的I / O异常(java.net.SocketException) - &gt; http://89.19.249.55:3128-&gt; https:// *****:连接重置
2018年1月12日上午8:43:40 org.apache.http.impl.execchain.RetryExec执行 信息:正在重试请求{tls} - &gt; http://89.19.249.55:3128-&gt; https:*****
2018年1月12日上午8:45:14 org.apache.http.impl.execchain.RetryExec执行 INFO:处理{tls}请求时遇到的I / O异常(org.apache.http.NoHttpResponseException) - &gt; http://184.178.217.66:3128-&gt; https:// *****:目标服务器无法响应< / p>
我已经通过抛出异常来扩展函数,但是我无法抓住它们。
我认为,因为它们是中断。
供您参考:
代码由~25个线程使用。 一个错误关闭一个线程。 如果线程关闭=我不能检查= /
所以25个错误和我的程序卡住......
希望有人知道如何解决这个问题= /
答案 0 :(得分:0)
我想说,这个中断/异常是由httpclient.execute(httpPost)引发的
稍后我可以尝试修复并通知你。