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