从老版本和新版本进行比较说明:
1.创建HttpClient对象
3.X:
HttpClient httpClient = new DefaultHttpClient();
4.3:
CloseableHttpClient httpClient = HttpClients.createDefault();
2.超时设置:
3.X:
HttpClient httpClient = new HttpClient();
client.setConnectionTimeout(30000);
client.setTimeout(30000);
或者:
HttpClient httpClient= new HttpClient();
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
4.X(4.3后已过时):
HttpClient httpClient=new DefaultHttpClient();
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,2000);//连接时间
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000); //数据传输时间
4.3:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost=new HttpPost("http://www.baidu.com"); //HTTP post请求
// 请求获取数据的超时时间 、 设置从connect Manager获取Connection超时时间、设置连接超时时间
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(10000).setConnectionRequestTimeout(3000).setConnectTimeout(10000).build();
httpPost.setConfig(requestConfig);
3.httpclient 4.3.1,当不设置 超时时间的时候
如果请求的url是通的,但服务器没有响应,会一直等待响应;
如果请求的url是不通的,21秒后会报:Connection timed out: connect