超时

本文深入探讨了HttpClient的超时设置方法及其在不同版本间的演变,提供了从3.X到4.X版本的详细设置步骤,并强调了合理设置超时参数的重要性,以避免服务器响应延迟导致的程序阻塞。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


DefaultHttpClient:
请求超时
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 60000); 
读取超时
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 60000);

HttpClient
HttpClient  httpClient= new  HttpClient(); 
链接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60000);  
读取超时
httpClient.getHttpConnectionManager().getParams().setSoTimeout(60000)


+++


原文

HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样, 
3.X是这样的 
HttpClient httpClient=new DefaultHttpClient(); 
4.3是这样的 
CloseableHttpClient httpClient = HttpClients.createDefault(); 
当然,上面这些变化只不过是一些小变化,大家看看API大家就都会了。 
我要讲的是超时设置,HttpClient有三种超时设置,最近比较忙,没时间具体归纳总结,以后再补上,我这里就讲一些最简单最易用的超时设置方法。 
这是个3.X的超时设置方法 
HttpClient client = new HttpClient(); 
client.setConnectionTimeout(30000); 
client.setTimeout(30000); 
HttpClient httpClient= new HttpClient(); 
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000); 
4.X版本的超时设置(4.3后已过时) 
HttpClient httpClient=new DefaultHttpClient(); 
//连接时间 
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,2000); 
//数据传输时间 
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000); 
4.3版本超时设置 
CloseableHttpClient httpClient = HttpClients.createDefault(); 
HttpGet httpGet=new HttpGet("http://www.baidu.com");//HTTP Get请求(POST雷同) 
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();//设置请求和传输超时时间 
httpGet.setConfig(requestConfig); 
httpClient.execute(httpGet);//执行请求 
BTW,4.3版本不设置超时的话,一旦服务器没有响应,等待时间N久(>24小时)。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值