邮递员多部分/表单数据错误:缺少开始边界
Posted
技术标签:
【中文标题】邮递员多部分/表单数据错误:缺少开始边界【英文标题】:Postman multipart/form-data error: Missing start boundary 【发布时间】:2016-01-15 10:21:57 【问题描述】:我正在尝试使用 Postman 发送的 multipart/form-data
请求访问我的服务器的端点。我收到 400 错误请求,原因是:
org.jvnet.mimepull.MIMEParsingException: Missing start boundary.
如何设置起始边界以及如何知道它应该是什么?
【问题讨论】:
我不认识 Postman,所以我无法回答您的问题,但边界划分了 multipart/* 消息的每个部分。它首先在消息主要部分中定义,然后在每个部分之间使用。预计 Postman 应该处理这种技术细节,因此请确保您正确使用它。 很奇怪,如果我从标题中删除 Content-Type multipart/form-data,我就可以访问我的端点... 【参考方案1】:https://github.com/postmanlabs/postman-app-support/issues/191 在此处跟踪该线程似乎将请求标头设置为 Content-Type multipart/form-data 我正在覆盖 Postman 设置的值。
无需手动添加内容类型标头。你是 覆盖 Postman 设置的值。只需在 POST 中选择表单数据 请求并发送您的请求,看看它是否有效。
删除标头允许我到达我的端点。
【讨论】:
删除标头会导致标头设置为multipart/octetstream
,从而导致"Content type 'application/octet-stream' not supported"
【参考方案2】:
重写 POSTMAN 标头值是上面 Anton 提到的问题。以下是独立 POSTMAN 客户端的标头和请求正文的外观:
【讨论】:
似乎关键(在本例中为“媒体”)是输入标签的名称属性,对吧?【参考方案3】:作为一种解决方法,试试这个:
弹簧: 球衣: application-path: /rest # 用作应用程序基本 URI 的路径。如果指定,则覆盖“@ApplicationPath”的值。 filter.order: 0 # Jersey 过滤器链顺序。 type: servlet # 可以是“servlet”或“filter”。 初始化。*:
type servlet 工作正常,但 filter 抛出 Start Boundary 错误。
【讨论】:
以上是关于邮递员多部分/表单数据错误:缺少开始边界的主要内容,如果未能解决你的问题,请参考以下文章
警告:第 0 行未知中的多部分/表单数据 POST 数据中缺少边界