需要用到的jar包:
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.3</version>
</dependency>
使用到的类:
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
关键代码:
String url = "http://localhost:8087/***/****";
String json = JSON.toJSONString(obr);
//1.获得httpclient
CloseableHttpClient httpClient = HttpClients.createDefault();
//2.request对象
HttpPost httpPost = new HttpPost(url);
try {
//为request对象赋值,请求头和请求正文
//httpPost.setHearder("","");//设置请求头
StringEntity requestEntity = new StringEntity(json,"UTF-8");
requestEntity.setContentEncoding("UTF-8");
requestEntity.setContentType("application/json");
httpPost.setEntity(requestEntity);
//3.执行httpclient得到response对象
CloseableHttpResponse response = httpClient.execute(httpPost);
//解析response对象,响应正文
HttpEntity entity = response.getEntity();
String resBody = EntityUtils.toString(entity);
EntityUtils.consume(entity);
System.out.println("接口响应报文:\n"+resBody);
JSONObject jsonObject = JSON.parseObject(resBody);
String retcode = (String) jsonObject.get("retcode");
Assert.assertEquals("000000", retcode);// 返回成功retcode
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}