java - 从 Postman 调用时,Spring Boot Multipart REST 端点给出“当前请求不是多部分请求”
问题描述
Spring Boot 版本:2.1.5.RELEASE。Spring Cloud 版本:Greenwich.RELEASE
我在带注释的类中定义了以下端点@Controller
@PostMapping("/")
@ResponseBody
public OcrResponse submitFile(@RequestParam("file") MultipartFile multipartFile) {
logger.info("Entering submitFile method");
//do more stuff......
}
我正在使用 Postman 对其进行测试,并且运行良好。昨天,我决定将 Postman 更新到最新版本(距离我更新它可能至少一年)。现在,当我测试它时,我收到以下错误:-
org.springframework.web.multipart.MultipartException: Current request is not a multipart request
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:194)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:113)
这就是我的邮递员请求的样子:-
- 标题。这些是邮递员自己自动包含的,我自己没有添加:-
- 正文(也显示错误):-
我看到其他帖子也有类似的错误,但这些大多已通过从请求中删除 Content-type 标头来解决,但在这种情况下不起作用。
我尝试过删除、重命名和重新排序 Postman 标头,但这些都没有帮助。我还尝试更改 REST 端点方法签名,例如重命名 MultipartFile 变量和参数以及使用 RequestPart 而不是 RequestParam,但到目前为止没有任何效果。在旧版本的 Postman 上执行完全相同的请求似乎很奇怪。我将非常感谢任何指导/建议。
解决方案
以防万一它对其他人有帮助,我正在分享我是如何解决这个问题的......
当我安装了旧版本的 Postman 并通过设置 -> 更新菜单将安装的版本更新到最新版本时,会出现上述问题。
从那以后,我完全卸载了 Postman,并从头开始安装最新版本。现在问题已经消失,我可以成功测试我的端点。有点奇怪,但至少它已经解除了我的障碍。
因此,我对任何升级 Postman 安装的人的建议是避免尝试更新现有安装。相反,导出所有收藏,完全卸载旧版本,从头开始安装新版本并重新导入所有收藏。
推荐阅读
- reactjs - MUI 中的闪烁动画
- multithreading - JMeter 5.0:在树侦听器中查看结果仅显示最后 100 个线程的结果
- ios - react-native pjsip 模块 - iOS 背景没有接收
- spotify-docker-client - 如何将卷挂载到容器?
- sas - SAS:使用索引列作为提示的哈希表查找
- css - 仅使用 CSS 从中心旋转三角形图像?
- azure - 在 Azure AD Enterprise 应用程序中跳过 Home Realm Discovery Page 或 Microsoft 登录页面
- javascript - 函数调用内的javascript内联注释
- javascript - 使用最新 jQuery 的视差滚动不起作用
- r - 为 mlogit 设置 data.frame - 错误消息:`row.names<-.data.frame`(`*tmp*`, value = paste(chid, alt, sep = ".")) 中的错误: