工作中遇到實名認證的接口
需要調第三方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;
}