概述
简介
首先说说HttpClient和Http的关系:
我们知道HTTP是一个客户端和服务器端请求和应答的标准(TCP)。
我们通常发起http请求时都在客户端通过get或post的方式发起(项目中最常用的即通过Ajax实现)。
不仅如此,在服务端java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的
功能。
HttpClient就是寻求弥补这项空白的组件,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,实
现HTTP协议最新的标准和建议。
功能
HttpClient 提供的主要的功能:
1.实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)2.支持自动转向
3.支持 HTTPS 协议4.支持代理服务器等
HttpClient 必须的jar包:
HttpClient:httpclient-4.1.2.jar(最新4.5:http://hc.apache.org/downloads.cgi)HttpClient用到的jar:httpcore-4.1.2.jar处理常用的编码和commons-logging-1.1.jar记录日志
应用
Http方法--执行请求
HttpClient最重要的功能即是执行HTTP方法:
一个HTTP方法的执行包含一个或多个HTTP请求/HTTP响应交换,通常由HttpClient的内部来处理。而期望用户提供一个要执行
的请求对象,而HttpClient期望传输请求到目标服务器并返回对应的响应对象,或者当执行不成功时抛出异常。
HttpClientAPI的主要切入点就是定义描述上述规约的HttpClient接口。使用 HttpClient 进行简单的请求执行过程 需要以下5个步骤(以get方式为例):
1.创建 HttpClient 的实例
HttpClient httpclient = new DefaultHttpClient();
2.创建某种连接方法的实例,在这里是GetMethod。在 GetMethod 的构造函数中传入待连接的地址
HttpGet httpget =new HttpGet("http://localhost/");
3.调用第一步中创建好的实例的execute 方法来执行第二步中创建好的 method 实例
HttpResponseresponse = httpclient.execute(httpget);
4.读取response数据
调用HttpResponse的getAllHeaders()、getHeaders(Stringname)等方法可获取服务器的响应头;调用HttpResponse的
getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。
HttpEntity entity =response.getEntity();
5.释放连接。无论执行方法是否成功,都必须释放连接
httpclient.close();
说明
如何理解上面的5个步骤及涉及到的类和方法,简单点:
HttpClient看作是一个浏览器
HttpGet即一个Get请求
HttpPost即一个Post请求
HttpClient.execute(HttpGet/HttpPost)相当于在浏览器或者通过Ajax进行的get和post提交。
HttpResponsehttp请求后的一个响应
HttpEntity一个实体对象,我们可以response.getEntity()从响应中获取数据。
对于Post请求,我们可以通过NameValuePair封装成list在封装成HttpEntity,用于向服务器端传参数:
private ListcreateNameValuePair(Map params)
{
List nameValuePairs = new ArrayList();
String key;
for(Iterator iterator =params.keySet().iterator(); iterator.hasNext(); nameValuePairs.add(newBasicNameValuePair(key, (String)params.get(key))))
key = (String)iterator.next();
return nameValuePairs;
}
对于Get请求,只有客户端的代码newHttpGet(url);将请求数据写在url中
HttpGet httpget =new HttpGet(url);
小结
HttpClient比较常用的用于调用WebService接口的应用上,通过对HttpGet和HttpPost方式完成在服务端调用外部WebService接口,并对接收到的数据进行处理的应用。接下来将继续对HttpClient中的细节进行研究学习。HttpClient详解(一)---请求详解
最后
以上就是迷路巨人为你收集整理的HttpClient详解(一)—简介与请求简介功能应用小结 的全部内容,希望文章能够帮你解决HttpClient详解(一)—简介与请求简介功能应用小结 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复