HttpClient设置延迟时间

360 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

HttpClient的3种超时说明

/* 从连接池中取连接的超时时间 */
ConnManagerParams.setTimeout(params, 1000);
/* 连接超时 */
HttpConnectionParams.setConnectionTimeout(params, 2000);
/* 请求超时 */
HttpConnectionParams.setSoTimeout(params, 4000);

第一行设置ConnectionPoolTimeout: 这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。

第二行设置ConnectionTimeout :这定义了通过网络与服务器建立连接的超时时间。Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为2秒。

第三行设置SocketTimeout :这定义了Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间,此处设置为4秒。

//这里的超时单位是毫秒。这里的http.socket.timeout相当于SO_TIMEOUT
httpClient.getParams().setIntParameter("http.socket.timeout",3000);  
HttpConnectionManagerParams managerParams = httpClient.getHttpConnectionManager().getParams();  

// 设置连接超时时间(单位毫秒)  
managerParams.setConnectionTimeout(30000);  

// 设置读数据超时时间(单位毫秒)  
managerParams.setSoTimeout(120000);

1,设置get方法请求超时为 5 秒

GetMethod getMethod = new GetMethod(url);     
getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,5000 );     

2,设置 Http 连接超时为5秒

HttpClient httpClient = new HttpClient();    
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000 );     

设置连接超时和请求超时,这两个超时的意义不同,需要分别设置。