欢迎使用CSDN-markdown编辑器

来源:互联网 发布:linux查看根目录命令 编辑:程序博客网 时间:2024/05/01 21:34

HttpClient

注意,本人用的是HttpClient4.5版本, 这一点很关键。
首先,HttpClient是 java 对 http协议 的客户端访问。
其次,了解它模拟http协议去访问 客户端的 步骤,如下流程图

Created with Raphaël 2.1.01,先拿到HttpClient对象实例httpClient2,再获取Http/HttpPost对象实例httpGet/httpPost3,HttpClient调用HttpGet/HttpPost对象4,接收响应,且分析状态码,且处理响应信息5,关闭httpClient连接

再次,按步骤上代码

  • 1,创建HttpClient对象
    HttpClient httpClient = new DefaultHttpClient();

    /**这里的HttpClient是接口,且它的实现子类DefaultHttpClient有很多种构造方法,且其构造函数的两个参数都是接口*
  • 2,创建HttpGet对象(这里以Get为例)
    HttpGet get = new HttpGet(uri);//uri指需要访问的url

    /*get.setXX(YY)这里可以设置Http请求时的一些属性信息,包括Cookie,请求头等等

  • 3,调用get对象(对应get访问,post也一样)/
    httpClient.execute(get);

    /*这里返回HttpResponse对象

  • 4,判断状态码,接收并处理响应信息
    if(response.getStatusLine().getStatusCode()== 200){

    /*这里对响应后的状态码进行判断,如果等于200,表示请求,响应均正常,可以接收处理数据

    httpEntity = response.getEntity();
    text = EntityUtils.toString(httpEntity, “utf-8”);

    /*这里用HttpEntity对象接收,使用EntityUtils类接收,该类底层也使通过InputStreamReader和charset来指定字符编码转换

  • 5,关闭连接
    httpClient.getConnectionManager().shutdown();

    /*该方法是唯一能够关闭TCP连接的,网上说的get.releaseConnection() 或者是httpClient.getConnectionManager().closeIdleConnections(-1, TimeUnit.SECONDS);行不通,可能是因为版本不一样,对一些类进行了封装导致

以上就是我个人一些梳理

0 0