网络技术-HttpClient

使用HttpClient发送HTTP

HttpClient是Apache提供的HTTP网络访问接口,从一开始便被引入到了Android API中。可以完成和HttpURLConnection一样的效果

  • 创建一个客户端对象,HttpClient是一个接口,通常情况下都会创建一个DefaultHttpClient的实例

    HttpClient client = new DefaultHttpClient();
    
  • 创建一条请求

    • 创建一条GET请求
      • 创建一个HttpGet对象,并传入目标的网络地址

        HttpGet httpGet = new HttpGet("http://www.baidu.com");
        
    • 创建一条POST请求
      • 创建一个HttpPost对象,并传入目标的网络地址

        HttpPost httpPost = new HttpPost("http://localhost:8080/web_1/LoginServlet");
        
      • 通过一个NameValuePair集合来存放待提交的参数

        List nameValue = new ArrayList();
        nameValue.add(new BasicNameValuePair("name", name));           
        nameValue.add(new BasicNameValuePair("pass", pass));
        
      • 封装实体对象

        UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(nameValue, "utf-8");
        
      • 设置POST请求对象的实体

        httpPost.setEntity(encodedFormEntity);
        
  • 发送请求,得到响应对象

    HttpResponse httpResponse = client.execute(httpGet / httpPost);
    
  • 判断响应吗是否为200

    //相应对象将响应头和相应内容分别封装成了对象,需要先获取其对象
    StatusLine line = httpResponse.getStatusLine();
        if (line.getStatusCode() == 200) {}
    
  • 获取响应内容

    //获取响应对象中的实体对象
    HttpEntity entity = httpResponse.getEntity();
        //拿到从服务器返回的输入流
        InputStream inputStream = entity.getContent();
        /*或者*/
        //将HttpEntity转换成字符串
        String text = EntityUtils.toString(entity, "utf-8");
    

你可能感兴趣的:(网络技术-HttpClient)