duan5564712
duan5564712
采纳率0%
2017-07-27 07:09 阅读 1.4k

HttpClient超时没有控制住

1

项目中由于需要调用第三方接口,由于第三方接口不可控,我们设置的有超时时间

PostMethod post = new PostMethod(url);
post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();
client.getParams().setConnectionManagerTimeout(connectionTimeOut);
client.getParams().setSoTimeout(soTimeOut);
post.setRequestBody(parameters);
client.executeMethod(post);
InputStream responseBody = post.getResponseBodyAsStream();
InputStreamReader in = new InputStreamReader(responseBody, "utf-8");
BufferedReader br = new BufferedReader(in);
StringBuffer rets = new StringBuffer();
String inputLine = "";
while ((inputLine = br.readLine()) != null){
rets.append(inputLine);
}
in.close();
String data = rets.toString().trim();
return data;

    正常情况下能控制住,没有问题,但是昨天发生没有控住的情况,第三方表示升级网络改了hosts地址,

    请问大神帮忙忽略网络问题从程序的角度分析为什么会没控制住,谢谢。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • zy841958835 cloudyzhao 2017-07-28 01:48

    CloseableHttpClient http = HttpClients.createDefault();
    RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();
    httpRequst.setConfig(requestConfig);

        建议使用这种
    
    点赞 1 评论 复制链接分享
  • qq_24675479 醉墨重生 2017-07-27 08:57

    HttpClient在6.0版本后已经被淘汰了

    点赞 评论 复制链接分享

相关推荐