欢迎来到天天文库
浏览记录
ID:47621326
大小:50.00 KB
页数:8页
时间:2019-09-28
《HttpClient与有关jar包详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、......word...专业技术行业资料......HttpClient及有关jar包详解1.HttpClient简介 HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。本文首先介绍HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过H
2、TTP协议来访问网络资源。虽然在JDK的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如ApacheJakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient
3、。现在HttpClient最新版本为HttpClient4.0-beta22.HttpClient功能介绍 以下列出的是HttpClient提供的主要的功能,要知道更多详细的功能可以参见HttpClient的主页。 (1)实现了所有HTTP的方法(GET,POST,PUT,HEAD等) (2)支持自动转向 (3)支持HTTPS协议 (4)支持代理服务器等3.HttpClient基本功能的使用 (1)GET方法 使用HttpClient需要以下6个步骤: 1.创建HttpClient的实
4、例 2.创建某种连接方法的实例,在这里是GetMethod。在GetMethod的构造函数中传入待连接的地址 3.调用第一步中创建好的实例的execute方法来执行第二步中创建好的method实例......范文范例学习参考指导.............word...专业技术行业资料...... 4.读response 5.释放连接。无论执行方法是否成功,都必须释放连接 6.对得到后的内容进行处理 根据以上步骤,我们来编写用GET方法来取得某网页内容的代码。 大部分情况下HttpClie
5、nt默认的构造函数已经足够使用。HttpClienthttpClient=newHttpClient(); 创建GET方法的实例。在GET方法的构造函数中传入待连接的地址即可。用GetMethod将会自动处理转发过程,如果想要把自动处理转发过程去掉的话,可以调用方法setFollowRedirects(false)。GetMethodgetMethod=newGetMethod("....."); 调用实例httpClient的executeMethod方法来执行getMethod。由于是执行在网
6、络上的程序,在运行executeMethod方法的时候,需要处理两个异常,分别是HttpException和IOException。引起第一种异常的原因主要可能是在构造getMethod的时候传入的协议不对,比如不小心将"http"写成"htp",或者服务器端返回的内容不正常等,并且该异常发生是不可恢复的;第二种异常一般是由于网络原因引起的异常,对于这种异常(IOException),HttpClient会根据你指定的恢复策略自动试着重新执行executeMethod方法。HttpClient的恢复策
7、略可以自定义(通过实现接口HttpMethodRetryHandler来实现)。通过httpClient的方法setParameter设置你实现的恢复策略,本文中使用的是系统提供的默认恢复策略,该策略在碰到第二类异常的时候将自动重试3次。executeMethod返回值是一个整数,表示了执行该方法后服务器返回的状态码,该状态码能表示出该方法执行是否成功、需要认证或者页面发生了跳转(默认状态下GetMethod的实例是自动处理跳转的)等。//设置成了默认的恢复策略,在发生异常时候将自动重试3次,在这里你
8、也可以设置成自定义的恢复策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, newDefaultHttpMethodRetryHandler()); //执行getMethod intstatusCode=client.executeMethod(getMethod); if(statusCode!=HttpStatus.SC_OK){ System.er
此文档下载收益归作者所有