你的位置:首页 > Java教程

[Java教程]使用HttpClient进行远程接口测试


前两天在工作中,项目组长给我了一个远程接口让我给测一下,因为是http协议,所以我首先想到了用httpClient工具类来测试,网上一查,找到了好多示例代码,随便复制了一个demo进行了简单的修改,结果怎么测试都是连接超时,试了很多个demo也不好使,最后发现是因为我们公司访问外网是通过代理,所以在进行测试的时候需要配置代理。一下是我的测试程序

用到的jar包:

 1 package com.lym.test; 2  3 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpHost; 5 import org.apache.http.client.config.RequestConfig; 6 import org.apache.http.client.methods.CloseableHttpResponse; 7 import org.apache.http.client.methods.HttpPost; 8 import org.apache.http.entity.StringEntity; 9 import org.apache.http.impl.client.CloseableHttpClient;10 import org.apache.http.impl.client.HttpClientBuilder;11 import org.apache.http.util.EntityUtils;12 13 import com.google.gson.JsonObject;14 15 public class HttpClientTest {16   17   public static void main(String args[]) throws Exception {18     19     // 创建HttpClientBuilder20     HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();21     // HttpClient22     CloseableHttpClient closeableHttpClient = httpClientBuilder.build();23     // 依次是目标请求地址,端口号,协议类型24     HttpHost target = new HttpHost("61.144.244.6:8888/sztmerchant/merchant/addIsztMerchant.htm", 8888, "http");25     // 依次是代理地址,代理端口号,协议类型26     HttpHost proxy = new HttpHost("proxy3.bj.petrochina", 8080, "http");27     RequestConfig config = RequestConfig.custom().setProxy(proxy).build();28 29     // 请求地址30     HttpPost httpPost = new HttpPost("http://61.144.244.6:8888/sztmerchant/merchant/addIsztMerchant.htm");31     // 设置头信息32     httpPost.addHeader("Content-type", "application/json; charset=utf-8");33     httpPost.setHeader("Accept", "application/json");34     httpPost.setConfig(config);35     36     // 创建参数json串37     JsonObject jsonObj = new JsonObject();38     jsonObj.addProperty("merchantNo", "33300911238");39     jsonObj.addProperty("merchantName", "电商运营生产测试1238");40     String jsonStr = jsonObj.toString();41     System.out.println("parameters: " + jsonStr);42     43     StringEntity entity;44     try {45       entity = new StringEntity(jsonStr, "UTF-8");46       httpPost.setEntity(entity);47       CloseableHttpResponse response = closeableHttpClient.execute(target, httpPost);48       // getEntity()49       HttpEntity httpEntity = response.getEntity();50       if (httpEntity != null) {51         // 打印响应内容52         System.out.println("result: " + EntityUtils.toString(httpEntity, "UTF-8"));53       }else {54         System.out.println("无响应内容");55       }56       // 释放资源57       if(closeableHttpClient != null) {58         closeableHttpClient.close();        59       }60     } catch (Exception e) {61       e.printStackTrace();62     }63   }64   65 }