立诚勿怠,格物致知
It's all about connecting the dots

400 bad request: Required request part 'file' is not present

最近碰到一个更新用户个人头像的需求,允许用户选择APP内置的几张示例图片作为头像,也允许用户拍照上传个人头像(不论是选择示例图片作为个人头像还是用户自己拍照作为个人头像,均会在文件字段之外再传其他参数,比如图片名,不只是一个文件字段)。计划中的接口是一个,拍照上传头像是由iOS和android开发在壳的层面上负责完成的,选择示例图片作为用户个人头像是在React Native层面予以实现的。因为是同一个接口,出于统一的目的,请求头中的Content-Type都使用“multipart/form-data; boundary=分隔符“这样的值(比如:Content-Type: multipart/form-data; boundary=”bac9aebd-d9ff-40ef-bcf3-4fffdd1b2c00″)。壳发的上传图片请求能正常地被服务器端处理,但是RN发的文件为空的请求就没法正常被处理,只知道报错信息为:400 bad request: Required request part ‘file’ is not present,跟后端交涉后被告知以前没有处理过不传文件的情况,还说他们写的是中间件,请求进不了断点的话他们也处理不了。。。

然而Spring、Tomcat这些东西毕竟不是才出来的新生事物,肯定不会有这么致命的问题在的。。。

结合看完即忘的一点java印象,在网上查了下资料,最后觉得可定是通过注解RequestParam来取参时出了问题(当然,因为没看过后端代码,全是猜的)。根据Spring官方文档https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html猜测通过@RequestParam(value = “file”, required = false)这种方式来取参的话,file字段就是可选的了。

第二天一上班就来找后端同事让他试试,后面不知道他们是不是通过这种方式解决这个问题的,反正最后请求可以进后端的断点了。That’s enough.

赞(3) 打赏
文章名称:《400 bad request: Required request part 'file' is not present》
文章链接:https://www.orzzone.com/400-bad-request-required-request-part-file-is-not-present.html
商业联系:yakima.public@gmail.com

本站大部分文章为原创或编译而来,对于本站版权文章,未经许可不得用于商业目的,非商业性转载请以链接形式标注原文出处。
本站内容仅供个人学习交流,不做为任何投资、建议的参考依据,因此产生的问题需自行承担。

评论 2

  1. #1

    你真是太棒了,因为你的这篇博客我也修复了同样的问题。

    jason6年前 (2018-09-29)回复

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力提供更多优质内容!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册