我是靠谱客的博主 迷路巨人,最近开发中收集的这篇文章主要介绍HttpClient详解(一)—简介与请求简介功能应用小结 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介


首先说说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接口的应用上,通过对HttpGetHttpPost方式完成在服务端调用外部WebService接口,并对接收到的数据进行处理的应用。接下来将继续对HttpClient中的细节进行研究学习。HttpClient详解(一)---请求详解



最后

以上就是迷路巨人为你收集整理的HttpClient详解(一)—简介与请求简介功能应用小结 的全部内容,希望文章能够帮你解决HttpClient详解(一)—简介与请求简介功能应用小结 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部