ScoketTimeout Exception浅析

以前都是用WebService的方式调用服务方的服务,此次直接调用别人的http服务。

使用的客户端是org.apache.http.client.HttpClient。

用的httpclient-4.5.2.jar

由于4.5.2和低版本的写法略有区别,大量的低版本的方法都被作废了。

看我的前面一篇博文  java使用HttpClient

本次调用中一直发生Exception : Socket Closed。

        RequestConfig requestConfig = 
            RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).setSocketTimeout(5000).build();

由于服务端处理时间过长,响应过慢导致客户端关闭Socket.

后改为不设置SocketTimeout

        RequestConfig requestConfig = 
            RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).build(); 

参考资料:

JAVA Socket超时浅析

Server端处理时间很长,Client发生SocketTimeoutException

SocketTimeoutException和ConnectException简介

原文地址:https://www.cnblogs.com/huanghongbo/p/7890520.html