spring RestTemplate 完成POST请求

433 阅读1分钟

简介

这段代码开箱即用,包括了设置header头,token,post请求以及拿到返回值的整套代码

    public Map<String,Object> postRestfulByHSC(HSCParams hscParams){
        // 1. 初始化restTemplate
        RestTemplate restTemplate = new RestTemplate();
        
        // 2. 创建header
        HttpHeaders headers = new HttpHeaders();
        
        // 3.添加header信息
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
        headers.add("application-key", hscParams.getApplicationKey());
        headers.add("x-yx-nonce", nonce);
        headers.add("x-yx-timestamp", timestamp);
        headers.add("x-yx-signature", signature);

        // 4. 组装请求头和参数
        HttpEntity<Object> formEntity = new HttpEntity<>(JSON.toJSONString(hscParams.getParams()), headers);

        // 5. 访问获取返回值
        ResponseEntity<Object> responseEntity = restTemplate.postForEntity(hscParams.getUrl(), formEntity, Object.class);
        Object body = responseEntity.getBody();
        return (Map<String, Object>) body;
    }

因为我很讨厌别人写的文章不带引用路径,我把我实际代码的引用路径也粘出来供大家食用

import com.alibaba.fastjson.JSON;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import java.util.Map;
import java.util.UUID;