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