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

 

posted @ 2019-04-12 14:09  小柴胡颗粒  阅读(3432)  评论(0编辑  收藏  举报