关于RestTemplate postForObject方法请求 服务端Controller接受不到值的问题解决

简介: 关于RestTemplate postForObject方法请求 服务端Controller接受不到值的问题解决
本文适合有SSM框架基础和springboot开发基础的同学查阅

这里postForObject 方法有三个参数,没有使用四个参数的。


restTemplate.postForObject(String url, Object request, Class<T> responseType);


1.String url => 顾名思义 这个参数是请求的url路径。


2.Object request => 请求的body 这个参数需要再controller类用 @RequestBody 注解接收


3.Class<T> responseType => 接收响应体的类型


private static final String REST_URL_PREFIX = "http://localhost:8001";

@Autowired
RestTemplate restTemplate;
发送请求的controller方法
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(User user) {
    return restTemplate.postForObject(REST_URL_PREFIX+"/cloud/update", user, String.class);
} 
接受请求的controller方法
@RestController 
@RequestMapping("/cloud") 
public class UserController {
  //这里一定要用@RequestBody 注解接收--Controller接受不到值的根本原因
  @RequestMapping(value = "/update", method = RequestMethod.POST)
  public String update(@RequestBody User user) {
      if(user.getId() == null){
          return "传值为空";
      }else if (userService.update(user)) {
        return "修改成功";
      } else {
          return "修改失败";
      }
  }

成功返回

如果不使用@RequestBody注解,则接受不到传值

@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(User user) {
    if(user.getId() == null){
        return "传值为空";
    }else if (userService.update(user)) {
        return "修改成功";
    } else {
        return "修改失败";
    }
}

 


目录
相关文章
深入探究Camunda监听器
执行监听器与任务监听器
2159 1
深入探究Camunda监听器
|
存储 Java
Springboot 验证码生成和校验,图片格式和base64编码串
Springboot 验证码生成和校验,图片格式和base64编码串
1337 0
Springboot 验证码生成和校验,图片格式和base64编码串
|
Web App开发 安全 Windows
解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
  调用SHDOCVW(web浏览器) COM组件的时候,返回了错误 HRESULT E_FAIL。总结如下:     1. 在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。
7553 0
|
7月前
|
安全 Java 网络安全
RestTemplate使用文件参数的高级应用案例
将这些高级特性组合起来,可以创建一个 `RestTemplate` 实例,它能够处理各种复杂的请求场景,包括大型文件上传、安全的 https 传输和详细的错误管理,在与外部服务的交互过程中提供强大和灵活的 HTTP 客户端功能。
271 0
|
JSON Java 数据格式
如何优雅的使用 RestTemplate
如何优雅的使用 RestTemplate
|
Java Spring 容器
基于RestTemplate扩展,支持Get请求传递javaBean参数
本文介绍了如何扩展RestTemplate以支持在GET请求中传递JavaBean参数的问题。在项目中,作者发现使用RestTemplate进行GET请求时,不能直接传递JavaBean作为参数,而需要手动将参数拼接到URL中,这种方法不仅繁琐而且容易出错
基于RestTemplate扩展,支持Get请求传递javaBean参数
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
1478 1
Java面试题之Java集合面试题 50道(带答案)
|
机器学习/深度学习 监控 安全
confidence_threshold
【9月更文挑战第13天】
1052 2
|
安全 Java 网络安全
RestTemplate进行https请求时适配信任证书
RestTemplate进行https请求时适配信任证书
1113 3
|
JSON JavaScript Java
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
1429 0