使用Spring OpenFeign 传输文件

本文介绍了在B模块调用A模块的文件保存接口时,如何使用Spring OpenFeign正确传输文件。在排查过程中发现B模块调用时未指定consumes及文件参数注解。解决方案是使用@RequestPart注解并确保POST请求类型,详细解析了@PostMapping的参数含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

B模块上传文件调用了A模块的文件保存实现

1.1 业务场景

首先在A模块中写好了上传文件并保存文件的接口与实现,
其次 B模块在开发中,需要调用A模块的接口
A模块接口 使用form-data传输file文件
B模块在使用OpenFeign调用A接口时, 出现异常:

	feign.FeignException: status 400 reading xxx

2.1 排查过程

A 模块接口正常
B 模块使用form-data接受正常
B 模块调用A模块接口,传参时异常, 因为调用OpenFeign时没有使用form-data

3.1 解决办法

方法: B 模块 在使用OpenFeign 调用A模块接口时, 需要 如下改动

  1. 在@PostMapping() 指定consumes (详细含义,看4.1章节)
  2. file 使用@RequestPart 注解
@ApiOperation(value = "添加拓扑图CAD设计图纸")
@PostMapping(path = "/design/file/target/{id}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
DesignFile addDesignFile(@PathVariable("id") Integer targetId,
                         @RequestParam(value = "targetType") String targetType,
                         @RequestPart("file"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值