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 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 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错误了,提示下图的错误,找了很多资料,才知道传参不对


你可能感兴趣的:(Springboot2.1.x使用RestTemplate发送post请求)