HttpClient在HTTP协议接口测试中的使用

来源:互联网 发布:ubuntu 删除文件 编辑:程序博客网 时间:2024/06/05 10:43

一.GET请求: GET请求时,参数一般是写在链接上的,代码如下:

public static void get(String url){    CloseableHttpClient httpClient = null;    HttpGet httpGet = null;    try {        httpClient = HttpClients.createDefault();        //设置请求和传输超时时间        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();             httpGet = new HttpGet(url);        httpGet.setConfig(requestConfig);        CloseableHttpResponse response = httpClient.execute(httpGet);        HttpEntity httpEntity = response.getEntity();        System.out.println(EntityUtils.toString(httpEntity,"utf-8"));    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }finally{        try {            if(httpGet!=null){                httpGet.releaseConnection();            }            if(httpClient!=null){                httpClient.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }}
如果想把参数不写在链接上,单独的传进去,则可以这样:

public static void get(String url, Map<String, String> params){    CloseableHttpClient httpClient = null;    HttpGet httpGet = null;    try {        httpClient = HttpClients.createDefault();        //设置请求和传输超时时间        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();        String ps = "";        for (String pKey : params.keySet()) {        if("".equals(pKey) || "".equals(params.get(pKey))){continue;    }        ps +="&"+pKey+"="+params.get(pKey);        }        if(!"".equals(ps)){            url = url + "?" + ps.substring(1,ps.length());        }        httpGet = new HttpGet(url);        httpGet.setConfig(requestConfig);        CloseableHttpResponse response = httpClient.execute(httpGet);        HttpEntity httpEntity = response.getEntity();        System.out.println(EntityUtils.toString(httpEntity,"utf-8"));    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }finally{        try {            if(httpGet!=null){                httpGet.releaseConnection();            }            if(httpClient!=null){                httpClient.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }}
二. POST请求的提交方式,代码如下:

public void post(String url, Map<String, String> params){    CloseableHttpClient httpClient = null;    HttpPost httpPost = null;    try {        httpClient = HttpClients.createDefault();        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();        httpPost = new HttpPost(url);        httpPost.setConfig(requestConfig);                //表单方式        List<NameValuePair> ps = new ArrayList<NameValuePair>();        for (String pKey : params.keySet()) {            ps.add(new BasicNameValuePair(pKey, params.get(pKey)));        }        httpPost.setEntity(new UrlEncodedFormEntity(ps));               //json方式//        JSONObject jsonParam = new JSONObject();  //        jsonParam.put("name", "admin");//        jsonParam.put("pass", "123456");//        StringEntity entity = new StringEntity(jsonParam.toString(),"utf-8");//解决中文乱码问题    //        entity.setContentEncoding("UTF-8");    //        entity.setContentType("application/json");    //        httpPost.setEntity(entity);                CloseableHttpResponse response = httpClient.execute(httpPost);        HttpEntity httpEntity = response.getEntity();        System.out.println(EntityUtils.toString(httpEntity,"utf-8"));    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }finally{        try {            if(httpPost!=null){                httpPost.releaseConnection();            }            if(httpClient!=null){                httpClient.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }}
 三. POST请求的RAW参数传递:

public void post(String url, String body){    CloseableHttpClient httpClient = null;    HttpPost httpPost = null;    try {        httpClient = HttpClients.createDefault();        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();        httpPost = new HttpPost(url);        httpPost.setConfig(requestConfig);        httpPost.setEntity(new StringEntity(body));        CloseableHttpResponse response = httpClient.execute(httpPost);        HttpEntity httpEntity = response.getEntity();        System.out.println(EntityUtils.toString(httpEntity,"utf-8"));    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }finally{        try {            if(httpPost!=null){                httpPost.releaseConnection();            }            if(httpClient!=null){                httpClient.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }}





阅读全文
0 0
原创粉丝点击