最初,HTTP是被设计成无状态的,面向请求-响应的协议。然而,真实的应用程序经常需要通过一些逻辑相关的请求-响应交换来持久状态信息。为了开启应用程序来维持一个过程状态,HttpClient允许HTTP请求在一个特定的执行环境中来执行,简称为HTTP上下文。如果相同的环境在连续请求之间重用,那么多种逻辑相关的请求可以参与到一个逻辑会话中。HTTP上下文功能和java.util.Map<String,Object>很相似。它仅仅是任意命名参数值的集合。应用程序可以在请求之前或在检查上下文执行完成之后来填充上下文属性。
在HTTP请求执行的这一过程中,HttpClient添加了下列属性到执行上下文中:
'http.connection':HttpConnection实例代表了连接到目标服务器的真实连接。'http.target_host':HttpHost实例代表了连接目标。
'http.proxy_host':如果使用了,HttpHost实例代表了代理连接。
'http.request':HttpRequest实例代表了真实的HTTP请求。
'http.response':HttpResponse实例代表了真实的HTTP响应。
'http.request_sent':java.lang.Boolean对象代表了暗示真实请求是否被完全传送到目标连接的标识。
比如,为了决定最终的重定向目标,在请求执行之后,可以检查http.target_host属性的值:
HttpGet httpget =new HttpGet("http://www.baidu.com/"); HttpResponse response = client.execute(httpget, localContext); HttpHost target = (HttpHost) localContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST); System.out.println("Final target: " + target); HttpEntity entity = response.getEntity(); if (entity !=null) { EntityUtils.consume(entity); } |
输出: |
Final target: http://www.baidu.com |
相关推荐
apache-httpcomponents-httpmime.jar
这个压缩包文件"apache-httpcomponents-httpcore.jar.zip"包含了HTTPCore组件,它是Apache HTTP Components项目的基础部分,专注于提供低级别的HTTP传输机制。在本文中,我们将深入探讨HTTPCore的基本概念、功能以及...
HttpComponents 用法解析 Java 模拟浏览器发送请求 HttpComponents 是一个开源的 Java 库,用于提供一个强有力的 HTTP 协议支持,帮助用户创建基于 HTTP 协议的客户和服务程序。它包含多个模块,包括 HttpCore、...
首先,我们来看HTTPComponents Client的核心组件——HttpClient。HttpClient是一个功能丰富的HTTP客户端,可以用来执行各种HTTP方法,如GET、POST、PUT等。它支持基本认证、代理设置、重试策略、连接管理和超时设置...
标签:apache、httpcomponents、httpmime、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...
标签:apache、httpcomponents、httpmime、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
标签:apache、httpcomponents、httpcore、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
《深入解析Android源码——HTTP网络通信篇》 在Android系统中,网络通信是应用程序与服务器交互的基础,尤其是在移动互联网时代,HTTP协议作为最常用的网络通信协议之一,扮演着至关重要的角色。本篇文章将深入探讨...
标签:apache、httpcomponents、httpcore、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
《深入理解HTTPComponents Jar包:构建高效网络通信的利器》 HTTPComponents是Apache软件基金会开发的一个Java库,它为开发者提供了强大的HTTP客户端和服务器端通信工具。这个库的核心在于其高度模块化的架构,使得...
Core模块提供了基础的HTTP协议处理功能,而HttpClient模块则构建在其上,提供了更高级的HTTP客户端服务,如连接管理、请求重试、身份验证等。 二、HTTPComponents Client 4.5.5特性 1. **连接管理**:4.5.5版本中...
HttpComponents Core提供了基础的HTTP传输机制,而HttpClient在其之上提供了丰富的客户端功能,两者结合,使得开发者能够高效、灵活地处理HTTP通信。在升级到4.2.x版本时,用户可以期待性能的提升和更多稳定性的改进...
标签:apache、httpcomponents、httpcore、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
1. **非阻塞I/O**:HttpComponents Core支持非阻塞I/O模型,允许在高并发环境下更有效地处理网络通信,减少资源消耗。 2. **连接管理**:提供连接池管理,可以复用已建立的TCP连接,减少握手开销,提高性能。 3. *...
httpcomponents-jar包;httpcomponents-jar包;httpcomponents-jar包;httpcomponents-jar包;httpcomponents-jar包;httpcomponents-jar包
标签:apache、httpcomponents、httpcore、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...
《深入理解Elasticsearch Java Low Level REST Client与HttpComponents》 Elasticsearch作为一个强大的分布式搜索引擎,广泛应用于数据存储、检索和分析。为了更好地利用Elasticsearch的功能,Java开发者通常会使用...
2. **安全设置**:配置SSL/TLS上下文,处理证书,启用或禁用特定的安全协议。 3. **性能优化**:例如使用线程池进行并发请求,或者开启http/2支持以提高效率。 4. **请求和响应处理**:自定义请求头,设置请求体,...
《Apache HttpComponents Core 4.4.8:构建网络通信的核心框架》 Apache HttpComponents Core 是一个广泛使用的开源Java库,它为构建基于HTTP协议的网络应用提供了强大的支持。这个库是Apache HttpClient项目的一...