java http 设置timeout_Java:HttpClient 4.1.2:ConnectionTimeout,SocketTimeout值设置无效

我正在使用HttpClient 4.1.2。将ConnectionTimeout和SocketTimeout设置为一个值永远不会有效。

代码:

Long startTime = null;

DefaultHttpClient httpClient = new DefaultHttpClient();

HttpParams params = httpClient.getParams();

HttpConnectionParams.setConnectionTimeout(params, 30);

HttpConnectionParams.setSoTimeout(params, 60);

HttpGet httpget = new HttpGet("http://localhost:8080/Test/ScteServer");

try {

startTime = System.currentTimeMillis();

HttpResponse response = httpClient.execute(httpget);

}

catch(SocketTimeoutException se) {

Long endTime = System.currentTimeMillis();

System.out.println("SocketTimeoutException :: time elapsed :: " + (endTime-startTime));

se.printStackTrace();

}

catch(ConnectTimeoutException cte) {

Long endTime = System.currentTimeMillis();

System.out.println("ConnectTimeoutException :: time elapsed :: " + (endTime-startTime));

cte.printStackTrace();

}

catch (ClientProtocolException e) {

e.printStackTrace();

}

catch (IOException e) {

Long endTime = System.currentTimeMillis();

System.out.println("IOException :: time elapsed :: " + (endTime-startTime) );

e.printStackTrace();

}如果服务器关闭,那么连接超时从不会超过400毫秒,因为它必须根据配置在~30毫秒超时。

套接字超时的情况也是如此,在5000ms内将睡眠放在doGet()中将会引发一个套接字超时,这将永远不会像配置的那样在60毫秒左右。它需要超过500毫秒。

任何人都可以建议如何配置HttpClient 4.1.2,使其超过配置的时间?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值