关于HttpClient的掌握

HttpClient

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

Created with Raphaël 2.1.0 1,先拿到HttpClient对象实例httpClient 2,再获取Http/HttpPost对象实例httpGet/httpPost 3,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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值