http://www.open-open.com/lib/view/open1383751765321.html
HttpClient 4.3。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小时)。
分享到:
相关推荐
1. **超时设置**:HttpClient允许设置连接超时、读取超时等,以避免长时间等待。 2. **线程安全**:在多线程环境中,通常需要为每个请求创建新的HttpClient实例,或使用线程安全的连接管理器。 3. **异常处理**:...
5. **超时控制**:可以设置连接超时、读取超时和写入超时,防止程序无响应。 6. **多线程处理**:HttpClient支持并发请求,适合大规模数据抓取或批量处理任务。 **五、示例代码** ```java CloseableHttpClient ...
2. **超时设置**:通过 `RequestConfig` 可以设置连接超时、读取超时和写入超时。 3. **Cookie 管理**:HttpClient 内置了 `CookieStore` 和 `CookieSpecRegistry`,方便处理和存储 Cookie。 4. **代理支持**:...
12. **连接超时**:允许设置连接超时,增强网络通信的可靠性。 13. **HTTP 1.1响应缓存**:实验性支持对HTTP 1.1响应的缓存。 14. **开源许可**:源代码遵循Apache License,可免费使用。 使用HttpClient的基本步骤...
2. **HttpConnectionManager**:管理HTTP连接,控制连接池大小、超时设置等。 3. **HttpClientBuilder**:用于构建和配置HttpClient实例,可以添加各种策略和拦截器。 4. **HttpGet, HttpPost, HttpPut**等:表示...
2. **超时设置**:设置请求和连接超时,避免程序阻塞。 3. **线程局部HttpClient**:对于并发场景,推荐每个线程使用独立的HttpClient实例,以减少线程间竞争。 4. **正确关闭资源**:执行完请求后,记得关闭响应和...
3. **连接超时设置**:可以设置连接建立、请求发送和响应接收的超时时间,防止请求无限等待。 4. **使用Cookie管理**:通过 `CookieStore` 和 `CookieSpec` 接口,可以管理客户端的Cookie,实现会话保持。 5. **...
可以通过 `RequestConfig` 配置请求的连接超时、读取超时和Socket超时,然后在请求对象上设置这个配置。 10. **重试机制**: HttpClient 提供了重试策略,可以通过 `HttpRequestRetryHandler` 接口实现自定义的重...
2. **超时设置**:可以设置请求超时、连接超时和读取超时,以控制请求的等待时间。 3. **认证策略**:HttpClient提供了多种认证机制,包括基本认证、摘要认证等,可以应对不同安全环境的需求。 六、 实例化与配置 ...
3. **超时设置**:可以为连接、请求和响应设置超时时间,避免程序阻塞。 4. **HTTPS支持**:HttpClient能够处理HTTPS请求,只需正确配置SSLContext和TrustStrategy。 五、HttpClient实战应用 HttpClient常用于爬虫...
HttpClient有多个版本,最新的版本是HttpClient 4.x系列,需要注意与所使用的JDK版本兼容性。 以上就是HttpClient工具类的主要知识点。在实际项目中,根据需求选择合适的配置和使用方式,可以有效地进行HTTP通信。...
- 设置连接超时、读取超时等参数,防止爬虫因长时间等待而挂起。 **MIME类型**: - 在处理POST请求时,如果需要上传文件或发送复杂数据,需要设置正确的MIME类型。 - 使用`MultipartEntityBuilder`可以创建多部分的...
1. **创建HttpClient实例**:通常通过`HttpClientBuilder`构建,可以定制各种配置,如连接池大小、超时时间等。 2. **设置策略**:例如,设置`RedirectStrategy`来处理重定向,设置`ConnectionManager`来管理连接。...
4. **自定义请求头和实体**:允许开发者灵活设置请求头和实体内容,支持多种内容编码和格式,如JSON、XML等。 5. **重试和超时策略**:具备自动重试机制和自定义超时配置,增强了网络请求的健壮性。 6. **安全性**...
2. **连接管理**:HttpClient 4.5提供了更精细的连接管理,可以设置连接池大小,超时时间等,优化了资源利用。 3. **SSL/TLS支持**:HttpClient 4.5加强了对SSL和TLS协议的支持,包括支持最新的加密算法和证书管理...
4. **性能优化**:可以通过调整连接池大小、设置超时时间、启用连接复用来优化性能。 四、HttpClient 4.2.2 的版本更新与兼容性 HttpClient 4.2.2 相比之前的版本,修复了一些已知问题,增强了对 HTTPS 的支持,...
5. **丰富的API**:HttpClient提供了一套灵活且强大的API,允许开发者自定义请求头、请求体、超时设置等。 三、使用步骤 1. **添加依赖**:在项目中引入HttpClient的依赖,例如在Maven项目中,可以在pom.xml文件中...
1. **初始化配置**:创建一个 HttpClient 实例,通常会涉及设置连接池、超时、重试策略等。例如: ```java CloseableHttpClient httpClient = HttpClients.custom() .setConnectionManager(connMgr) ....
4. **代理设置** - HttpClient支持通过代理服务器进行网络通信,可以设置HTTP和HTTPS代理,包括主机名、端口、用户名和密码。 5. **抓包工具与网络调试** - HttpClient的请求和响应可以通过抓包工具(如Wireshark...
4. **请求头设置**: - 添加自定义请求头:例如,设置User-Agent、Accept-Language、Cookie等,以模拟浏览器行为或满足服务器要求。 5. **异步请求**: - HttpClient支持异步请求,使用`Future<HttpResponse>`,...