1.1.3 与消息头一起工作
HTTP消息能包含大量头,它们描述了消息的属性。例如内容长度,内容类型等等。HttpClient提供了获取,增加,去除和枚举头。
HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
response.addHeader("Set-Cookie", "c1=a; path=/; domain=localhost");
response.addHeader("Set-Cookie", "c2=b; path=\"/\", c3=c; domain=\"localhost\"");
Header h1 = response.getFirstHeader("Set-Cookie");
System.out.println(h1);
Header h2 = response.getLastHeader("Set-Cookie");
System.out.println(h2);
Header[] hs = response.getHeaders("Set-Cookie");
System.out.println(hs.length);
输出〉
Set-Cookie: c1=a; path=/; domain=localhost
Set-Cookie: c2=b; path="/", c3=c; domain="localhost"
2
取得所有给定类型的头最有效的方法是使用HeaderIterator接口。
HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
response.addHeader("Set-Cookie", "c1=a; path=/; domain=localhost");
response.addHeader("Set-Cookie", "c2=b; path=\"/\", c3=c; domain=\"localhost\"");
HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator("Set-Cookie"));
while(it.hasNext()){
System.out.println(it.next());
}
它也提供了解析HTTP消息的便利方法,可以将消息解析为不同的头元素。
HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
response.addHeader("Set-Cookie", "c1=a; path=/; domain=localhost");
response.addHeader("Set-Cookie", "c2=b; path=\"/\", c3=c; domain=\"localhost\"");
HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator("Set-Cookie"));
while(it.hasNext()){
HeaderElement elem = it.nextElement();
System.out.println(elem.getName() + " = " + elem.getValue());
NameValuePair[] params = elem.getParameters();
for (int i = 0; i < params.length; i++) {
System.out.println(" " + params[i]);
}
}
输出>
c1 = a
path=/
domain=localhost
c2 = b
path=/
c3 = c
domain=localhost
分享到:
相关推荐
httpclient 指南 包括了详细的调用和常用代码 The Hyper-Text Transfer Protocol (HTTP) is perhaps the most significant protocol used on the Internet today. Web services, network-enabled appliances and the...
此外,文档还讲解了HttpClient的代理配置(Proxy Configuration),这是一个常用功能,特别是当需要通过代理服务器来访问外部网络资源时。 HTTP状态管理(HTTP State Management)部分讨论了HTTP Cookie的处理,...
本文档是一个全面的HttpClient教程,涉及HttpClient的基本使用、接口、异常处理、连接管理、HTTP状态管理和认证机制等多个方面。 1. HttpClient基础 1.1 请求执行 1.1.1 HTTP请求:HttpClient支持创建和配置HTTP...
2. `commons-logging-1.1.3.jar`:这是一个日志抽象层,允许HttpClient使用多种日志实现(如log4j、java.util.logging等)。通过这个库,HttpClient可以透明地记录其内部操作,帮助开发者调试和分析程序运行状态。 ...
在C#编程中,`HttpClient`是一个非常重要的类,它被广泛用于发送HTTP请求和接收HTTP响应。这个类是.NET Framework 4.5引入的,随后也在.NET Core中得到支持,成为了处理网络通信的标准方式。在本文中,我们将深入...
### HTTPClient 教程知识点概览 #### 一、基础知识 **1.1 请求执行** - **1.1.1 HTTP请求**:介绍如何构造一个HTTP请求,包括GET、POST等方法的应用场景以及如何设置请求头。 - **1.1.2 HTTP响应**:解析HTTP响应...
使用httpclient调用公安部接口 并接受返回的字符串转换为图片
在WPF(Windows Presentation Foundation)应用程序中,使用HttpClient调用Web API是一项常见的任务,尤其是在进行数据交互时。本文将深入探讨如何在WPF应用中利用HttpClient进行异步操作,以避免阻塞主线程,提高...
1. **创建HttpClient实例**: 创建HttpClient对象是使用HttpClient的第一步。例如,可以使用`HttpClientBuilder`构建一个默认配置的客户端。 2. **设置请求参数**: 创建`HttpGet`或`HttpPost`对象,设置URL、请求...
在IT行业中,网络通信是应用程序之间交互的重要方式,而HTTPClient是Java开发中常用的一款库,用于执行HTTP请求。这个“HTTPClient的一个封装”显然指的是对Apache HttpClient库进行了定制化处理,以适应特定项目...
在Java开发领域,HttpClient是一个广泛使用的库,尤其在处理HTTP请求与响应时。HttpClient 4.2.1是这个库的一个稳定版本,提供了丰富的功能和优化,使得开发者能够高效、可靠地执行HTTP操作。本文将深入探讨...
这样确保了在整个应用程序生命周期中,HttpClientHelper只有一个实例被创建和使用。 5. **异常处理**:HttpClientHelper 应该包含了适当的错误处理机制,如捕获网络异常、解析异常等,以确保在出现问题时能够给出...
在Java开发中,HTTP通信是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包的关系,帮助开发者更好地理解和使用这两个组件。 ...
HttpClient广泛应用于Web服务调用、爬虫程序、数据同步、自动化测试等领域。例如,在Web服务API调用中,HttpClient可以方便地构造和发送GET、POST请求,获取并解析响应内容;在爬虫程序中,HttpClient可以处理登录、...
HTTPClient组件是Apache Jakarta Commons项目中的一个子项目,专为Java开发者提供高效、全面的HTTP协议支持。它弥补了JDK内置的java.net包中URL和URLConnection类在HTTP客户端编程方面的不足,提供了更丰富和灵活的...