Springboot2.1.x使用RestTemplate发送post请求

1.发送post请求

首先要在项目里自动注入RestTemplate 

@Autowired

private RestTemplate  loadBalanced;

(1)接收类型为 application/json 的post请求

    1)定义发送的参数

        JSONObject parameters =new JSONObject();

        parameters .put("id", "1");

        parameters .put("name", "lucky");

    2)定义发送的请求头

        HttpHeaders headers =new HttpHeaders();

        headers.setContentType(MediaType.APPLICATION_JSON);

        HttpEntity<JSONObject > requestEntity =new HttpEntity<>(loginParameters, headers);

(2) 接收类型为application/x-www-form-urlencoded的post请求

    1)定义参数

        MultiValueMap parameters =new LinkedMultiValueMap<>();

        parameters .add("id", "1");

        parameters .add("name","lucky");

    2) 定义请求头

        HttpHeaders headers =new HttpHeaders();

        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

        HttpEntity<MessageResult> requestEntity =new HttpEntity<>(updatePasswordParameters, headers);

两种post请求调用服务的方法是一样的

3)调用服务

       // 定义调用服务的路径

        String clientUrl ="http://" +MDServiceName +"/login";

ResponseEntity<MessageResult>mdResult =loadBalanced.postForEntity(clientUrl, requestEntity,MessageResult.class);

此处的MessageResult是自定义的一个类,调用的返回结果会包装成MessageResult


当传的参数不对是,会报错,当接收类型为application/x-www-form-urlencoded,我仍然按照application/json的方式传的参数,结果就报500错误了,提示下图的错误,找了很多资料,才知道传参不对


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容