RestTemplate 调用第三方接口
工作中遇到实名认证的接口
需要调第三方API
所以顺便学一下RestTemplate 的使用
但是传post的时候怎么放入请求头是一个问题
看教程
我出现的问题
我发的json请求 事实上这个api是query parameter
当然不能忘了加appCode在请求头
最后成功的代码
@PostMapping(value = "/testPostApi")
public Object testPost(@RequestBody JSONObject param) throws URISyntaxException {
RestTemplate restTemplate = new RestTemplate();
URI uri = new URI("https://eid.shumaidata.com/eid/check");
String appCode = "52cc0ea3aaf24eb7a1250f327fea9f25";
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "APPCODE " + appCode);
//添加参数,因为HttpEntity里面的参数是MultiValueMap类型的,所以使用这个map集合
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.add("idcard","4211216456563582416");
map.add("name", "张ad");
//添加请求的实体类,这里第一个参数是要发送的参数,第二个参数是请求头里的数据
HttpEntity<Object> requestEntity = new HttpEntity<>(map, headers);
//跟下面使用交换机的方法结果一样
ResponseEntity<String> exchange = restTemplate.exchange(uri, HttpMethod.POST, requestEntity, String.class);
JSONObject jsonObject = JSON.parseObject(exchange.getBody());
System.out.println(jsonObject);
return jsonObject;
}