java RestTemplate put和delete请求无返回值问题解决

       最近的项目中涉及到使用RestTemplate 调用请求方式为deleteput的接口,但是RestTemplate提供的delete()put()方法都没有返回值,但是我要调用的接口是有返回值的,网上的资料很多都是写的调用exchange()方法来实现,但是基本上都没有给出完整实例,导致我在参考他们的代码的时候会出现参数无法传递的问题,目前我已经解决该问题,现将我的解决方法分享出来

       我同样是使用exchange()方法来实现,但是url有讲究,需要像使用exchange方法调用get请求一样,使用占位符

      1、 delete请求实例,请求方式使用 HttpMethod.DELETE

    /**
     * 删除用户
     * @param id
     * @return
     */
    public String delete(Long id) {
        StringBuffer url = new StringBuffer(baseUrl)
                .append("/user/delete/{id}");

        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("id", id);

        ResponseEntity<String > response = restTemplate.exchange(url.toString(), HttpMethod.DELETE, null, String .class, paramMap);
        String result = response.getBody();

        return result;
    }

2、put请求实例,请求方式使用 HttpMethod.PUT

    /**
     * 更新用户基础信息
     * @param userInfoDTO
     * @return
     */
    public String edit(UserInfoDTO userInfoDTO) {
        StringBuffer url = new StringBuffer(baseUrl)
                .append("/user/edit?tmp=1")
                .append("&id={id}")
                .append("&userName={userName}")
                .append("&nickName={nickName}")
                .append("&realName={realName}")
                .append("&sex={sex}")
                .append("&birthday={birthday}");

        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("userId", userInfoDTO.getId());
        paramMap.put("userName", userInfoDTO.getUserName());
        paramMap.put("nickName", userInfoDTO.getNickName());
        paramMap.put("realName", userInfoDTO.getRealName());
        paramMap.put("sex", userInfoDTO.getSex());
        paramMap.put("birthday", userInfoDTO.getBirthday());

        ResponseEntity<String > response = restTemplate.exchange(url.toString(), HttpMethod.PUT, null, String .class, paramMap);
        String result = response.getBody();

        return result;
    }

3、使用RestTemplate调用get、post请求请参考我的另一篇文章:https://blog.csdn.net/LDY1016/article/details/80002126

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值