美文网首页日常学习
HttpClient4.X发送带参数的Get请求

HttpClient4.X发送带参数的Get请求

作者: 木叶之荣 | 来源:发表于2017-01-12 23:28 被阅读18次

    HttpClient 是apache 组织下面的一个用于处理HTTP 请求和响应的开源工具。所用jar包为httpclient-4.3.6.jar、httpcore-4.3.3.jar、httpmime-4.3.6.jar、commons-codec-1.6.jar。
    发送Get请求代码如下:

    package com.zkn.newlearn.httpclient;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.List;
    
    import org.apache.http.Consts;
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.ParseException;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    import com.google.common.collect.Lists;
    
    public class HttpClientTest02 {
    
        public static void main(String[] args) {
            CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = null;
            InputStream is = null;
            String url = "http://localhost:8080/MyWebxTest/getCityByProvinceEname.do";
            //封装请求参数
            List<NameValuePair> params = Lists.newArrayList();
            params.add(new BasicNameValuePair("cityEname", "henan"));
            String str = "";
            try {
                //转换为键值对
                str = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));
                System.out.println(str);
                //创建Get请求
                HttpGet httpGet = new HttpGet(url+"?"+str);
                //执行Get请求,
                response = httpClient.execute(httpGet);
                //得到响应体
                HttpEntity entity = response.getEntity();
                if(entity != null){
                    is = entity.getContent();
                    //转换为字节输入流
                    BufferedReader br = new BufferedReader(new InputStreamReader(is, Consts.UTF_8));
                    String body = null;
                    while((body=br.readLine()) != null){
                        System.out.println(body);
                    }
                }
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                //关闭输入流,释放资源
                if(is != null){
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                //消耗实体内容
                if(response != null){
                    try {
                        response.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                //关闭相应 丢弃http连接
                if(httpClient != null){
                    try {
                        httpClient.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            
        }
    }
    

    相关文章

      网友评论

        本文标题:HttpClient4.X发送带参数的Get请求

        本文链接:https://www.haomeiwen.com/subject/tdmjbttx.html