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

来源:互联网 发布:it运维管理软件 编辑:程序博客网 时间:2024/05/22 08:27
TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下这三种形式:

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

 1 public void get(String url){ 2     CloseableHttpClient httpClient = null; 3     HttpGet httpGet = null; 4     try { 5         httpClient = HttpClients.createDefault(); 6         RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();      7         httpGet = new HttpGet(url); 8         httpGet.setConfig(requestConfig); 9         CloseableHttpResponse response = httpClient.execute(httpGet);10         HttpEntity httpEntity = response.getEntity();11         System.out.println(EntityUtils.toString(httpEntity,"utf-8"));12     } catch (ClientProtocolException e) {13         e.printStackTrace();14     } catch (IOException e) {15         e.printStackTrace();16     }finally{17         try {18             if(httpGet!=null){19                 httpGet.releaseConnection();20             }21             if(httpClient!=null){22                 httpClient.close();23             }24         } catch (IOException e) {25             e.printStackTrace();26         }27     }28 }

二. POST请求的表单提交方式,代码如下:

 1 public void post(String url, Map<String, String> params){ 2     CloseableHttpClient httpClient = null; 3     HttpPost httpPost = null; 4     try { 5         httpClient = HttpClients.createDefault(); 6         RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build(); 7         httpPost = new HttpPost(url); 8         httpPost.setConfig(requestConfig); 9         List<NameValuePair> ps = new ArrayList<NameValuePair>();10         for (String pKey : params.keySet()) {11             ps.add(new BasicNameValuePair(pKey, params.get(pKey)));12         }13         httpPost.setEntity(new UrlEncodedFormEntity(ps));14         CloseableHttpResponse response = httpClient.execute(httpPost);15         HttpEntity httpEntity = response.getEntity();16         System.out.println(EntityUtils.toString(httpEntity,"utf-8"));17     } catch (ClientProtocolException e) {18         e.printStackTrace();19     } catch (IOException e) {20         e.printStackTrace();21     }finally{22         try {23             if(httpPost!=null){24                 httpPost.releaseConnection();25             }26             if(httpClient!=null){27                 httpClient.close();28             }29         } catch (IOException e) {30             e.printStackTrace();31         }32     }33 }

三. POST请求的RAW参数传递:

 1 public void post(String url, String body){ 2     CloseableHttpClient httpClient = null; 3     HttpPost httpPost = null; 4     try { 5         httpClient = HttpClients.createDefault(); 6         RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build(); 7         httpPost = new HttpPost(url); 8         httpPost.setConfig(requestConfig); 9         httpPost.setEntity(new StringEntity(body));10         CloseableHttpResponse response = httpClient.execute(httpPost);11         HttpEntity httpEntity = response.getEntity();12         System.out.println(EntityUtils.toString(httpEntity,"utf-8"));13     } catch (ClientProtocolException e) {14         e.printStackTrace();15     } catch (IOException e) {16         e.printStackTrace();17     }finally{18         try {19             if(httpPost!=null){20                 httpPost.releaseConnection();21             }22             if(httpClient!=null){23                 httpClient.close();24             }25         } catch (IOException e) {26             e.printStackTrace();27         }28     }29 }

原文:http://www.cnblogs.com/zhangfei

0 0
原创粉丝点击