zoukankan      html  css  js  c++  java
  • 《第一行代码》学习笔记41-网络(2)

    (Note: HttpClient has been deprecated.)

    1.HttpClient是Apache提供的HTTP网络访问接口。

    2.HttpClient可以完成和HttpURLConnection几乎一模一样的效果。
    (1)HttpClient是一个接口,无法创建它的实例,通常情况下都会创建一个DefaultHttpClient的实例,如下:

    HttpClient httpClient = new DefaultHttpClient();
    

    (2)若要发起个GET请求,创建一个HttpGet对象,传入目标的网络地址,再调用HttpClient的execute()方法,如下:

    HttpGet httpGet = new HttpGet("http://baidu.com");
    httpClient.execute(httpGet);
    

    (3)若要发起个POST请求,需要创建个HttpPost对象,并传入目标的网络地址,如下:

    HttpPost httpPost = new HttpPost("http://www.baidu.com");
    

    通过一个NameValuePair集合来存放待提交的参数,将这个参数集合传入到一个UrlEncodedFormEntity中,再调用
    HttpPost的setEntity()方法将构建好的UrlEncodedFormEntity传入,如下:

    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("username", "admin"));
    params.add(new BasicNameValuePair("password", "123456");
    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "utf-8");
    httpPost.setEntity(entity);
    

    接下来的操作和HttpGet一样,调用HttpClient的execute()方法,并将HttpPost对象传入:

    httpClient.execute(httpPost);
    

    (4)执行execute()方法后会返回个HttpResponse对象,服务 器返回的信息会包含在里面,通常情况下取出服务器返回的
    状态码,等于200就说明请求和响应成功,如下:

    if (httpResponse.getStatusLine().getStatusCode() == 200)  {
            //请求和响应成功
    }
    

    (5)在if判断的内部取出服务返回的具体内容,调用getEntity()方法获取到HttpEntity实例,再用EntityUtils.toString()这个
    静态方法将HttpEntity转换成字符串,如下:

    HttpEntity entity = httpResponse.getEntity();
    String response = EntityUtils.toString(entity);
    

    3.注意!若服务器返回的数据是带有中文的,直接调用EntityUtils.toString()方法进行转换会有乱码的情况出现,这时只需
    要在转换的时候将字符集指定成utf-8即可,如下:

    String response = EntityUtils.toString(entity, "utf-8");
    
  • 相关阅读:
    Cookie天使还是恶魔?
    Nhibernate学习起步之manytoone篇
    共享终结者ShareKiller
    基于弹性碰撞原理的抖动式窗口
    Nhibernate分析之华山论剑篇
    Nhibernate学习之manytomany篇
    JavaScript常用字符串函数
    让全中国人蒙羞的搜索爬虫
    近期项目的一些代码总结
    Nhibernate学习之性能改善1
  • 原文地址:https://www.cnblogs.com/Iamasoldier6/p/5050434.html
Copyright © 2011-2022 走看看