springcloud - resttemplate post对象接收不到

查看:105
本文介绍了springcloud - resttemplate post对象接收不到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

客户端:
用了两种方式都不行

第一种:

this.restTemplate.postForObject("http://demo-main/register?a={a}", userInfo, String.class, "test");

第二种:

this.restTemplate.postForObject("http://demo-main/register?userInfo={userInfo}&a={a}", null, String.class, userInfo, "test");

服务端:

@RequestMapping(value = "/register", method = RequestMethod.POST)
public void register(UserInfo userInfo, String a) throws UserException {
    logger.info("==== register {} , {}", JSON.toJSONString(userInfo), a);
    UserInfoPo po = UserConvertUtil.info2Po(userInfo);
    userInfoPoMapper.insert(po);
}

日志输出只能接收到a的参数值

2017-02-04 14:44:32.476 INFO 68445 --- [nio-8080-exec-1] com.ellis.user.UserServiceImpl : ==== register {} , test

请大神指导

解决方案

@Override
@RequestMapping(value = "/register", method = RequestMethod.POST)
public void register(@RequestBody UserInfo userInfo) throws UserException {
    logger.info("==== register {} ", JSON.toJSONString(userInfo));
    UserInfoPo po = UserConvertUtil.info2Po(userInfo);
    userInfoPoMapper.insert(po);
}


接收参数添加@RequestBody注解就好了。

这篇关于springcloud - resttemplate post对象接收不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆