httpClient.execute(httpGet)超时

代码中我用Response = httpClient.execute(httpGet)希望得到返回的数据,但是那边的反应时间会有一些长,这行代码就会判断有错,请问我该怎么设定它的超时?或者有没有办法在这次超时以后再次请求它的数据?谢谢大佬!

嵌套在循环中,出现异常就继续调用。
设置超时时长:

设置超时时间,http client版本不同,方法也不一样可参考


下面是4.3以上版本设置方法

//手工设定超时时间,把超时时间设置长一些
CloseableHttpClient httpclient = HttpClients.createDefault();  
HttpGet httpGet = new HttpGet("http://stackoverflow.com/");  
//设置超时时间
RequestConfig requestConfig = RequestConfig.custom()  
        .setConnectTimeout(5000)  //建立连接超时 
        .setSocketTimeout(5000).build();  //读取响应超时
httpGet.setConfig(requestConfig); 

超时之后再次请求数据是不合理的,超时并不代表处理失败。重发一次,会产生重复数据。
如果是新开发系统,还可以改系统架构,建议改成处理结果异步通知。服务端收到数据马上回个“数据处理中”。有结果了,再通知客户端