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 }
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有