RestTemplate 设置头信息,发送post请求,并携带参数(发短信)

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", "短信发送失败");

猜你喜欢

转载自blog.csdn.net/love_caicai/article/details/82696946
今日推荐