如何用Postman测试Spring Boot Multipart接口?遇404错误求解
Spring Boot FormData接口Postman测试404问题解决
我开发了一个可接收FormData及图片文件的Spring Boot API接口,接口代码如下:
@PostMapping("/user/personUpload") public ResponseEntity<BaseResposeModel> personUploadWithImage(@RequestParam("person") PersonModel person, @RequestParam("personImage") MultipartFile file) throws IOException{ // 业务逻辑代码 }
使用Postman测试该接口时,始终返回404资源未找到错误,请问应如何正确进行测试?(测试截图显示:Postman选择POST请求,Body使用form-data类型,设置了person和personImage字段)
排查方向及正确测试步骤
1. 确认完整请求URL的正确性
- 核实Spring Boot应用的运行端口(默认8080),拼接完整请求URL:
http://localhost:8080/user/personUpload - 如果项目配置了上下文路径(比如
server.servlet.context-path=/api),需在URL前加上该路径,即http://localhost:8080/api/user/personUpload - 检查URL拼写,避免大小写或路径段错误(Spring Boot默认URL大小写不敏感,但建议和注解配置完全一致)
2. 匹配请求方法
- 确保Postman中选择的请求方法为POST,与接口的
@PostMapping注解完全匹配,禁止使用GET等其他方法
3. 正确配置FormData参数
- 在Postman的
Body标签下,选中form-data选项 - 按以下规则添加参数:
- 参数
person:类型选择Text,值填写符合PersonModel字段结构的JSON字符串(例如{"name":"张三","age":28})。注意:若Spring无法自动将表单文本解析为PersonModel对象,需检查是否配置了合适的消息转换器,或考虑将PersonModel的字段拆分为多个独立的@RequestParam参数 - 参数
personImage:类型选择File,点击右侧文件选择框,选取本地的图片文件
- 参数
4. 验证Spring Boot的组件扫描配置
- 确认接口所在的Controller类添加了
@RestController或@Controller注解 - 确保Controller类所在的包在启动类的扫描范围内(默认启动类所在包及其子包会被自动扫描)
5. 检查拦截规则
- 若项目中使用了Spring Security或自定义拦截器,需确认
/user/personUpload路径未被拦截,已添加到允许访问的白名单中
内容的提问来源于stack exchange,提问作者Nazir
相关产品推荐
相关产品推荐

