我的小名是于晏
2019-04-10 16:28
采纳率: 50%
浏览 3.6k
已采纳

如何用RestTemplate同时传递一个Java对象和基本类型的参数?

我用RestTemplate想两个参数,一个是自己写的Java类,一个是基本类型

请求的Controller

    @RequestMapping("/buy")
    public int buy(@RequestBody GoodsDetail goodsDetail,Integer buyCount){
        goodsDetail.setRemaining(goodsDetail.getRemaining() - buyCount);
        int num = goodsDetailMapper.updateByPrimaryKey(goodsDetail);
        return num;
    }
  • 用getForObject:

        Map<String,Object> map = new HashMap<>();
        map.put("goodsDetail",goodsDetail);
        map.put("buyCount",buyCount);
        int num = restTemplate.getForObject("http://localhost:8088/shop-buy/buy?goodsDetail={goodsDetail}&buyCount={buyCount}", int.class, map);
    

    报400 null图片说明

  • 用postForObject:

        MultiValueMap<String,Object> multiValueMap = new LinkedMultiValueMap<>();
        multiValueMap.add("goodsDetail",goodsDetail);
        multiValueMap.add("buyCount",buyCount);
        int num = restTemplate.postForObject("http://localhost:8088/shop-buy/buy", multiValueMap, int.class);

报415 null 图片说明

求救,要疯掉了!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 咖啡加冰66 2019-04-10 17:40
    已采纳

    @RequestParam 或者将这两个封装到一个实体类

    点赞 1 打赏 评论
  • 柠檬怀 2019-04-11 10:52
    @RequestMapping("/buy/{buyCount}")
        public int buy(@RequestBody GoodsDetail goodsDetail,@PathParam ("buyCount") Integer buyCount){
            goodsDetail.setRemaining(goodsDetail.getRemaining() - buyCount);
            int num = goodsDetailMapper.updateByPrimaryKey(goodsDetail);
            return num;
        }
    
    点赞 3 打赏 评论

相关推荐 更多相似问题