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;
    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM