HttpClient v4.1.1发布 客户端编程工具包

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。

HttpClient 功能介绍

以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。

实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
支持自动转向
支持 HTTPS 协议
支持代理服务器等

HttpClient v4.1.1更新日志如下:

The HttpClient 4.1.1 is a bug fix release that addresses a number of issues reported since release 4.1, including one critical security issue (HTTPCLIENT-1061). All users of HttpClient 4.0.x and 4.1 are strongly encouraged to upgrade.

* [HTTPCLIENT-1069] HttpHostConnectException not correctly retried for direct and non-tunnelled proxy connections.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPCLIENT-1066] Changed the way URIUtils#rewriteURI handles multiple consecutive slashes in the URI path component: multiple leading slashes will be replaced by one slash in order to avoid confusion with the authority component. The remaining content of the path will not be modified.   (also see HTTPCLIENT-929).  
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPCLIENT-1061] Fixed critical bug causing Proxy-Authorization header to be sent to the target host when tunneling requests through a proxy server that requires authentication.  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPCLIENT-1056] Fixed bug causing the RequestAuthCache protocol interceptor to generate an invalid AuthScope instance when looking up user credentials for preemptive authentication.   Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPCLIENT-1053] Fixed the way DigestScheme generates nonce-count values.  Contributed by Oleg Kalnichevski <olegk at apache.org>

下载地址:
http://hc.apache.org/downloads.cgi

时间: 2024-11-03 10:10:07

HttpClient v4.1.1发布 客户端编程工具包的相关文章

在Windows系统和Eclipse IDE集成环境下使用Java进行HBase客户端编程

本文以HBase 0.90.2为例,介绍如何在Windows系统,Eclipse IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表.删除表.插入记录.删除记录.各种方式下的查询操作等. 1. 准备工作 1.下载后安装jdk包(这里使用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008): 2.下载eclipse,解压到本地(这里使用的是eclipse-java-helios-SR2-win32): 3.下载HBase包,解压

Web客户端编程

Web最初采用的"服务器-浏览器"方案可提供交互式内容,但这种交互能力完全由服务器提供,为服务器和因特网带来了不小的负担.服务器一般为客户浏览器产生静态网页,由后者简单地解释并显示出来.基本HTML语言提供了简单的数据收集机制:文字输入框.复选框.单选钮.列表以及下拉列表等,另外还有一个按钮,只能由程序规定重新设置表单中的数据,以便回传给服务器.用户提交的信息通过所有Web服务器均能支持的"通用网关接口"(CGI)回传到服务器.包含在提交数据中的文字指示CGI该如何

ASP.NET AJAX客户端编程之旅(七)——剩下的问题(完结篇)

关于Loading... 相信做Ajax应用的朋友没有不使用loading的,不然网络延迟会让用户体验非常差,而且用户会不知道系统正在工作.那么当使用ASP.NET AJAX客户端编程时,怎么做loading呢? 我们先来分析一下loading应该什么时候显示,什么时候终止.一个典型的异步交互过程如下: 1.用户发出请求 2.网络延迟 3.服务器端处理 4.服务器返回数据 5.网络延迟 6.客户端呈现数据 在这个交互过程中,loading应该在第一步后出现,而在第六步结束后才消失.结合前面的知识

ASP.NET AJAX客户端编程之旅(五)

ASP.NET AJAX客户端编程之旅(五)--以组件的思想开发Ajax应用:行为.绑定及xml-script 初识行为组件 行为组件一词中的"行为"是从单词Behavior直译过来的.但是我个人认为,就其作用来说,应该叫"属性赋予组件"更合适一点.因为行为组件实际的作用是:为某一控件赋予某种属性.例如ClickBehavior是为某个控件添加"具有单击事件"这个属性,而OpacityBehavior则是为控件添加"透明显示"

ASP.NET AJAX客户端编程之旅(四)

ASP.NET AJAX客户端编程之旅(四)--以组件的思想开发Ajax应用:客户端组件初探 以组件的思想重新审视Ajax客户端开发 在进入主题之前,我想和大家一起再来看一下本文章系列第一篇中的一个Demo:ASPNETAJAXTest.我现在将其中的客户端代码重新贴在这里. Default.aspx: 1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs&q

ASP.NET AJAX客户端编程之旅(三)

ASP.NET AJAX客户端编程之旅(三)--让JavaScript和C#无障碍沟通:数据类型自动转换&序列化 通过前两篇文章,我们知道使用了ASP.NET AJAX框架后,在JavaScript中调用后台WebService方法非常方便,几乎可以看做是"直接调用".那么,这里引出了一个问题:调用方法就牵扯到参数的传递,而JavaScript和C#毕竟是两种不同的语言,数据类型怎么沟通?简单型数据类型还好说,如果我们需要的参数是个复杂类型呢?如分层架构中经常用到实体类做参数,

ASP.NET AJAX客户端编程之旅(二)——知其所以然

如何在客户端直接调用WebService中的方法? 1.Web.config中需要配置好运行ASP.NET AJAX框架相应的配置项,当然,建立一个ASP.NET AJAX Enabled Web Site项目时,Web.config已经配置好了. 2.想让某个WebService可以被JS调用,需要做一下几步: I.在这个WebService文件里用"using System.Web.Script.Services;"引入这个命名空间. II.在这个类的上面添加"[Scri

ASP.NET AJAX客户端编程之旅(一)——Hello!ASP.NET AJAX

前言 我想,如果今天哪个Web开发人员说没有听说过Ajax技术,那实在太不可思议了.确实,近几年,Ajax这个词以超乎想象的速度红遍Web开发领域,大到Google.网易,小到一些地方公司的主页,都普遍开始加入Ajax元素.这种技术,给Web开发带来了革命性的意义,也使得Web产品及B/S系统的用户体验大大改善. 然而,Ajax用起来华丽.爽快,开发起来却困难重重.JavaScript语言怪异的语法.没有IDE支持以及难以调试,都成为Ajax开发的硬伤.另外B/S系统和C/S不同,浏览器的多样性

CYQ.Data 轻量数据层之路 V4.5 版本发布[更好的使用体验,更优的缓存机制]

前言: 继上一版本:CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持] ,至今已快近3个月了,中间仅有V4.5beta版本供下载,却没正式发布,今天,终于要把V4.5给发布了.   下面看一下新版本的修改记录 实用: 1:MAction:Select方法增加重载:Select(string where); 2:FormatWhere处理了"Parent is null"的"is"关键字;处理"order by