restTemplate调用参数类型为form Data类型的接口 用LinkedMultiValueMap封装参数

springweb提供了调用远程接口模板restTemplate,以rest方式请求接口非常方便.下面针对post请求做两种说明:

1.如果调用的接口参数用@RequestBody标识

  此种在postman中传参方式是选择json格式,编写json格式参数即可,

       对应的restTemplate.postForObject(url, requestBody, Result.class); 默认调用的时候就是将requestBody实体类转为json格式调取。

2.如果调用的接口参数用@RequestParam标识

    此种在postman中传参方式选择form-data,然后按需传参(不是必传参数可以不传),

   对应的restTemplate.postForObject(url, requestBody, Result.class);将会调取失败!

   解决办法:使用LinkedMultiValueMap封装要穿的参数:

     MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
        //按需传参,不是必填的参数可以不传
        map.add("order_id", submit.getOrderId());
        map.add("userName",submit.getUserName());
        //发送请求,设置请求返回数据格式为String
        ResponseEntity<String> responseEntity = restTemplate.postForEntity("http:xxx.xx", request, String.class);
原文地址:https://www.cnblogs.com/fangyan1994/p/12178739.html