java httpget 超时_java httpclient超时无效问题

java在调用http请求时需要使用到httpclient发送http请求。(也有其他,我使用的这一个)为了避免调用他人的连接出问题需要设置超时。

我使用的版本是:httpclient-4.5.6

private static PoolingHttpClientConnectionManager connMgr;

private static RequestConfig requestConfig;

private static final int MAX_TIMEOUT = 3000;

static {

// 设置连接池

connMgr = new PoolingHttpClientConnectionManager();

// 设置连接池大小

connMgr.setMaxTotal(100);

connMgr.setDefaultMaxPerRoute(connMgr.getMaxTotal());

// Validate connections after 1 sec of inactivity

connMgr.setValidateAfterInactivity(1000);

RequestConfig.Builder configBuilder = Reques

以上为关键代码:主要设置了tConfig.custom();

// 设置连接超时

configBuilder.setConnectTimeout(MAX_TIMEOUT);

// 设置读取超时

configBuilder.setSocketTimeout(MAX_TIMEOUT);

// 设置从连接池获取连接实例的超时

configBuilder.setConnectionRequestTimeout(MAX_TIMEOUT);

requestConfig = configBuilder.build();

}

以上为关键代码:设置了settimeout属性赋值给RequestConfig对象。

然后

HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()).setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build();

测试了设置的超时在本地是一切正常的。但是在服务器上这一步很慢。大约需要2分钟。在网上找答案有人说是需要设置重试策略。(我觉得这步跟我的超时没关系,尝试了也不行)。

已经确定了是这个调用http特别慢了,如何处理,想不通为什么设置的超时在服务器不起作用,有可能服务器做了什么限制吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值