RestTemplate 设置头信息,发送post请求,并携带参数(发短信)
程序员文章站
2022-03-04 20:30:10
...
RestTemplate 设置头信息,发送post请求,并携带参数(发短信)
@Bean
RestTemplate smsClient(RequestLogInterceptor requestLogInterceptor) {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
interceptors.add(requestLogInterceptor);
restTemplate.setInterceptors(interceptors);
return restTemplate;
}
//添加参数
MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
map.add("cmd", "sendMessage");
map.add("userName", channelConfig.getAccount());
map.add("passWord", channelConfig.getPassword());
map.add("phoneNumber", mobile);
map.add("body", message);
//设置头信息
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<Object> requestEntity = new HttpEntity<Object>(map, headers);
//请求
ResponseEntity<String> o = smsClient.exchange(channelConfig.getAccessUrl(), HttpMethod.POST, requestEntity, String.class);
//反回
YrztSenderResponseVo result = JSON.toJavaObject(XML.toJSONObject(o.getBody()), YrztSenderResponseVo.class);
//解析结果
List<Field> fields = result.getBody();
if (fields.size() > 0) {
for (Field f : fields) {
// 0表示发送成功,非0表示失败
if (f.getName().equals("resultCode") && f.getValue().equals("0")) {
return ResponseVo.success();
} else {
logger.error("云融正通短信服务code值", f.getValue());
return ResponseVo.fail("999999", "短信发送失败");
}
}
}
return ResponseVo.fail("999999", "短信发送失败");
上一篇: 『转载』pylint高频警告错误--原因及处理建议
下一篇: 深度学习:3_手写一个单层的神经网络