当前位置: 首页 > news >正文

feign client发送Post请求,发送对象参数,服务端接收不到正确参数报错排查

记一次feignclient发送请求服务端接收不到正确参数排查

服务端代码:

  @Operation(summary = "Create team")@PostMapping("post")@RequiresPermissions("team:add")public RestResponse addTeam(@Valid Team team) {this.teamService.createTeam(team);return RestResponse.success();}

可以看出,服务端接口为Post请求,传参对象为Team
Team中有name和description两个属性。

Feign客户端的代码为:

    @PostMapping(value = "/team/post")RestResponse createTeam(@RequestBody Team team);

当我使用客户端调用接口时,服务端在保存数据到数据库时报错,无其余信息。

于是查看原服务的前端调用,发现前端传参:

  • 传参方式为:From Data
    name=PUB_SIT&descrition=xxx
    formdata类型的post请求,参数看起来会像get传参一样
  • 然而常见的post传参方式为:Request Payload
    参数为body的形式:
{"name": "PUB_SIT","description":"xxx"
}

故问题出在这里。
解决方案:在feignclient接口方法中使用consumes属性设置请求的Content-Type为multipart/form-data

    @PostMapping(value = "/team/post", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)RestResponse createTeam(@RequestBody Team team);

参考文档:feignclient发送formdata请求

http://www.lryc.cn/news/437850.html

相关文章:

  • Hadoop林子雨安装
  • Springboot项目总结
  • 目标检测从入门到精通——数据增强方法总结
  • SQL server 的异常处理 一个SQL异常 如何不影响其他SQL执行
  • STM32——看门狗通俗解析
  • 点亮第一盏LED灯 5): stm32CubeMX生成Keil代码
  • ollama语言大模型部署使用
  • redis 基本数据类型—string类型
  • Git 使用教程:从入门到精通
  • ES查询的一些优化方式
  • 计算左边(比自己小的元素)的最长距离
  • 【C++算法】二分查找
  • 红日靶场通关
  • 用Python爬虫制作一个简易翻译器
  • Shader Graph Create Node
  • 共模干扰的形成和滤除
  • (计算机网络)运输层
  • 基于深度学习的信号滤波:创新技术与应用挑战
  • MFC工控项目实例之十一板卡测试信号输入界面
  • sql中索引查看是否生效
  • SpringBoot常见面试题
  • springboot优雅停机无法关闭进程,kill无法停止springboot必须kill -9,springboot线程池使用
  • 【系统架构设计师-2015年真题】案例分析-答案及详解
  • MongoDB设置系统服务启动教程
  • mysql学习教程,从入门到精通,MySQL WHERE 子句(10)
  • 设计模式】Listener模式和Visitor模式的区别
  • 基于事件序列的数据获取
  • 太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡
  • 探索UWB技术的独特优势:实现高精度定位
  • 软件安装攻略:Sublime Text 下载安装和使用教程