java 后台 httpclient 对象 对外发送 请求
pom 坐标
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
</dependency>
代码参考
public String deviceRegister() {
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
// 请求的 地址
String url = "http://127.0.0.1:8080/external/deviceRegistration";
HttpPost post = new HttpPost(url);
String result = "";
try (CloseableHttpClient closeableHttpClient = httpClientBuilder.build()) {
//组装 jsonDataStr 需要的数据
DeviceRegisterVO deviceRegisterVO = new DeviceRegisterVO();
SysUser sysUser = userService.selectUserById(getUserId());
deviceRegisterVO.setEnterpriseCode(sysUser.getCorporationCode());
deviceRegisterVO.setRegion(sysUser.getDeptId().toString());
// 设置 post 请求参数 json 字符串 形式的
String jsonDataStr = JSON.toJSONString(deviceRegisterVO);
// 修复 POST json 导致中文乱码
HttpEntity entity = new StringEntity(jsonDataStr,"UTF-8");
post.setEntity(entity);
post.setHeader("Content-type", "application/json");
//发送 请求
HttpResponse resp = closeableHttpClient.execute(post);
try {
InputStream respIs = resp.getEntity().getContent();
byte[] respBytes = IOUtils.toByteArray(respIs);
// 接受 并转换 回调的数据
result = new String(respBytes, Charset.forName("UTF-8"));
DeviceRegistVO deviceRegistVO = JSON.parseObject(result, DeviceRegistVO.class);
System.out.println(deviceRegistVO.getResponseCode());
} catch (Exception e) {
e.printStackTrace();
}
return result;
} catch (IOException e) {
e.printStackTrace();
}
return result;
}