【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版
consumes = MediaType.MULTIPART_FORM_DATA_VALUE
的作用
1. 定义请求的数据格式
• 作用:告诉 Feign 和 HTTP 客户端,这个接口 接收的是 multipart/form-data
格式的数据(通常用于文件上传)。
• 为什么需要它?
• 文件上传(MultipartFile
)必须用 multipart/form-data
格式传输,不能直接用 JSON 或普通表单。
• 不加这个参数,服务端可能无法正确解析文件。
2. 对应服务端的 @RequestPart
• 服务端(easylive-cloud-resource
)的接口:
@PostMapping(value = "/inner/file/uploadImage", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String uploadImage(@RequestPart MultipartFile file, @RequestParam Boolean createThumbnail) { ... }
• consumes
必须和客户端(ResourceClient
)一致,否则会报 415 Unsupported Media Type 错误。
@RequestPart
和 @RequestParam
的作用
1. @RequestPart
:处理文件或复杂数据
• 适用场景:
• 用于接收 文件(MultipartFile
) 或 非简单类型数据(如 JSON 字符串)。
• 示例:
@RequestPart MultipartFile file // 接收上传的文件
• 调用时,Feign 会自动将文件转换成 multipart/form-data
格式发送。
2. @RequestParam
:处理普通表单字段
• 适用场景:
• 用于接收 普通参数(如 String
、Boolean
、Integer
)。
• 参数会以 key=value
形式拼接到 URL 或表单中。
• 示例:
@RequestParam Boolean createThumbnail // 接收布尔值参数
• 调用时,Feign 会把它变成 ?createThumbnail=true
或表单字段。
3. 对比总结
注解 | 用途 | 常见参数类型 | HTTP 传输方式 |
---|---|---|---|
@RequestPart | 文件或复杂数据 | MultipartFile | multipart/form-data 格式 |
@RequestParam | 普通字段(简单类型) | String 、Boolean | URL 查询参数(?key=value )或表单字段 |