Picture Picture Picture Picture Picture Picture Picture

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;
    }
posted @ 2020-09-03 14:15  云行雨步  阅读(7314)  评论(0编辑  收藏  举报
Title - Artist
0:00