HttpClient在使用中有两个超时时间。
一、连接超时:connectionTimeout
1.指的是连接一个url的连接等待时间。
2.设置方法为:
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod("http://test.com");
client.getHttpConnectionManager().getParams().setConnectionTimeout(3000);
3.测试的时候,将url改为一个不存在的url:“http://test.com”
4:超时时间3000ms过后,系统报出异常。
org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 3000 ms
二、读取数据超时:soTimeout
1.指的是连接上一个url,获取response的返回等待时间
2.设置方法伟:
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod("http://localhost:8080/firstTest.htm?method=test");
client.getHttpConnectionManager().getParams().setSoTimeout(2000);
3.测试的时候的连接url为我本地开启的一个url,http://localhost:8080/firstTest.htm?method=test,在我这个测试url里,当访问到这个链接时,线程sleep一段时间,来模拟返回response超时。
@RequestMapping(params = "method=test")
public String testMethod(ModelMap model) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("call testMethod method.");
model.addAttribute("name", "test method");
return "test";
}
4:将读取response返回超时时间设的时间比那个sleep时间短之后,运行程序给出异常:java.net.SocketTimeoutException: Read timed out
提醒:以后再写httpClient这两个超时时间一定要加上,不加就很可能悲剧的了。
分享到:
相关推荐
3. **线程安全**:HttpClient设计为线程安全,可以在多线程环境中使用,而无需额外的同步措施。 4. **自定义化**:HttpClient允许用户根据需要定制请求头、实体内容、编码策略等,以满足特定的应用场景。 5. **高...
如果手动管理,确保这两个库都在项目的类路径下。 三、简单应用 HttpClient的核心类包括`CloseableHttpClient`和`HttpGet`,它们分别用于创建HTTP客户端和定义HTTP请求。以下是一个简单的GET请求示例: ```java ...
Java HTTPClient 设置超时时间和代理的方法 Java HTTPClient 是一个功能强大且灵活的 HTTP ...设置超时时间和代理是 Java HTTPClient 中两个非常重要的配置项,通过正确地设置这些项,可以提高系统的稳定性和性能。
本文将深入探讨httpclient.jar包,以及它与code.jar包的关系,帮助开发者更好地理解和使用这两个组件。 httpclient.jar是Apache HttpClient库的核心组件,它提供了全面的HTTP协议支持,包括HTTP/1.1和部分HTTP/2。...
在Android应用开发中,进行网络通信是常见的任务,其中两种主要的请求方式是使用`HttpURLConnection`和`HttpClient`。虽然两者都能实现HTTP通信,但它们在功能、使用方式和性能上存在一些区别。 首先,Apache ...
这两个库由Apache软件基金会开发,是开源的,并且在许多Java应用程序中都有广泛应用,特别是对于需要进行网络通信或者Web服务调用的场景。 HTTPClient-4.1.3.jar是Apache HttpClient的一个版本,它提供了一个功能...
同时,这两者都支持线程安全,可以方便地在多线程环境中使用。 总的来说,HttpClient和HttpCore是Java开发者的得力助手,它们简化了网络编程的复杂性,让开发者可以专注于业务逻辑,而不是底层的网络细节。无论是在...
5. **线程安全**:HttpClient实例不是线程安全的,如果在多线程环境中使用,需要为每个线程创建独立的HttpClient实例,或者使用线程局部变量。 总的来说,HttpClient是Java开发者在进行HTTP通信时的重要工具,它的...
HttpClient4.1.2 和 HtmlUnit2.9 是在Java编程中处理网络请求和网页解析的两个重要库。这篇博客文章可能详细介绍了如何利用这两个库来实现文件的下载功能。 HttpClient 是Apache基金会的一个项目,提供了丰富的HTTP...
这里假设登录URL为`https://example.com/login`,并且登录表单有两个字段:username和password。由于题目中提到“不提供用户名密码”,所以我们将使用占位符表示: ```java HttpPost httpPost = new HttpPost(...
HTTPClient组件是Apache Jakarta Commons项目中的一个子项目,专为Java开发者提供高效、全面的HTTP协议...同时,HttpClient还提供了丰富的配置选项,如设置超时时间、连接管理策略等,以适应不同场景下的网络通信需求。
版本4.2.5是一个稳定且广泛使用的版本,包含了`httpclient-4.2.5.jar`和`httpcore-4.2.4.jar`这两个核心依赖。`httpcore`提供了基本的HTTP协议处理,而`httpclient`则在此基础上添加了更高级的功能,如连接管理、重...
虽然Android原生的`HttpClient`已被弃用,但仍有第三方库如Apache HttpClient(如文件中的httpcomponents-client-4.2.5)提供支持。这些库不仅维护了`HttpClient`的功能,还添加了更多特性,如更好的连接管理、错误...
这有助于防止在网络通信过程中出现长时间无响应的情况。 2. **发起HTTP请求**:使用HttpClient的HttpGet或HttpPost方法,向目标URL发起请求。HttpGet用于获取静态页面,HttpPost则常用于提交表单数据。 3. **处理...
这个标题提到的"HttpClient中的client和server相互调用的两个例子"很可能是关于如何使用HttpClient库来构建HTTP客户端和服务端交互的示例。我们将深入探讨HttpClient的基本概念、客户端与服务器端的通信流程以及提供...
对于新的项目,推荐使用Apache HttpClient 4.x或更高版本,或者考虑使用Java 7及以后版本提供的内置`java.net.HttpURLConnection`,因为这些更新的解决方案通常有更好的性能和兼容性,并且与现代Java生态系统更好地...
这个示例代码对于理解如何在Java中使用HttpClient发送和接收JSON数据非常有帮助,它涵盖了HttpClient的基本用法以及JSON序列化和反序列化的实践。通过阅读和学习这个代码,开发者可以更熟练地处理HTTP通信任务。
本文将深入探讨标题提及的`httpclient-4.5.3.jar`和`httpclient-cache-4.5.3.jar`这两个库,以及它们在HTTP通信中的作用。 首先,我们来了解`httpclient-4.5.3.jar`。这是Apache HttpClient库的一个版本,属于...