RestTemplate进行表单请求,注意要使用MultiValueMap
在对接API的时候,有时候文档中会说,表单提交,这时候就需要用到 MultiValueMap来操作,下面给大家展示一个简单的demo。
MultiValueMap<Object, Object> params= new LinkedMultiValueMap<Object, Object>(); params.add("name",dto.getUser_name()); params.add("cardNo",dto.getCard_no()); params.add("idCard",dto.getId_card()); params.add("phone",dto.getCard_phone()); params.add("bankno",dto.getCard_no()); params.add("orderId",String.valueOf(orderId)); logger.info("获取验证码校验参数:"+JSON.toJSON(params)); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); HttpEntity<MultiValueMap<Object, Object>> requestEntity = new HttpEntity<MultiValueMap<Object, Object>>(params, headers); String url = getVerificationCodeUrl; logger.info("获取验证码请求地址为:{}",url); try { ResponseEntity<CommonResponse> rsp = restTemplate.exchange(url, HttpMethod.POST, requestEntity, CommonResponse.class); logger.info("手机号:" + phone + ",获取验证码返回结果:" + JSON.toJSON(rsp)); if (rsp.getStatusCodeValue() == 200){ if ("000".equals(rsp.getBody().getCode())){ logger.info("手机号:"+phone+",验证码发送成功"); }else { logger.info("手机号:"+phone+",验证码发送失败,"+"失败原因:"+rsp.getBody().getMsg()); return ResponseData.error(rsp.getBody().getMsg()); } } }catch (Exception e){ logger.error("请求获取验证码失败",e); return ResponseData.error(); }