https://www.cnblogs.com/mambahyw/p/7875142.html
***********************************************************
通过httpclient的post方法发送json参数进行接口测试。借鉴知乎上“云层”的提供的方法。
作者:云层 链接:https://www.zhihu.com/question/30878548/answer/121149629 来源:知乎
把要发送的json作为字符串传入body即可
public static String sendHttpPost(String url, String body) throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.addHeader("Content-Type", "application/json");httpPost.setEntity(new StringEntity(body));CloseableHttpResponse response = httpClient.execute(httpPost);System.out.println(response.getStatusLine().getStatusCode() + "\n");HttpEntity entity = response.getEntity();String responseContent = EntityUtils.toString(entity, "UTF-8"); System.out.println(responseContent);response.close();httpClient.close();return responseContent;}
我的测试代码示例:
public static void main(String[] args) { //测试公司的API接口,将json当做一个字符串传入httppost的请求体 String result = null; HttpClient client = HttpClients.createDefault(); URIBuilder builder = new URIBuilder(); URI uri = null; try { uri = builder.setScheme("http") .setHost("xxx.xxx.xxx.xxx:xxxx") .setPath("/api/authorize/login") .build(); HttpPost post = new HttpPost(uri); //设置请求头 post.setHeader("Content-Type", "application/json"); String body = "{\"Key\": \"\",\"Secret\": \"\"}"; //设置请求体 post.setEntity(new StringEntity(body)); //获取返回信息 HttpResponse response = client.execute(post); result = response.toString(); } catch (Exception e) { System.out.println("接口请求失败"+e.getStackTrace()); } System.out.println(result);}