java修改客户端时间_java – 在apache http客户端中设置超时

我正在使用Apache http客户端4.3.2发送get请求.我所做的是:

private final RequestConfig requestConfig = RequestConfig.custom()

.setConnectTimeout(1000)

.setConnectionRequestTimeout(1000)

.setSocketTimeout(1000)

.build();

private final HttpClient client = HttpClientBuilder.create()

.disableAuthCaching()

.disableAutomaticRetries()

.disableConnectionState()

.disableContentCompression()

.disableCookieManagement()

.disableRedirectHandling()

.setDefaultRequestConfig(requestConfig)

.build();

发送请求时:

HttpGet request = null;

try {

request = new HttpGet(url);

if (client.execute(request).getStatusLine().getStatusCode() == 200) {

/* do some work here */

}

} catch (Exception e) {

Logger.error(e);

} finally {

if (request != null) {

request.releaseConnection();

}

}

但是我的一些请求仍然需要很长时间才能超时.这是堆栈跟踪异常:

java.net.SocketTimeoutException: Read timed out

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:152)

at java.net.SocketInputStream.read(SocketInputStream.java:122)

at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136)

at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152)

at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:270)

at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)

at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)

at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260)

at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:161)

at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.apache.http.impl.conn.CPoolProxy.invoke(CPoolProxy.java:138)

at com.sun.proxy.$Proxy0.receiveResponseHeader(Unknown Source)

at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271)

at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)

at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:254)

at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)

at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)

at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)

at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)

at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)

我应该设置什么其他超时值吗?我究竟做错了什么?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值