邮递员多部分/表单数据错误:缺少开始边界

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 数据中缺少边界

如何正确发送数据 axios 错误:多部分:未找到边界

如何在邮递员的同一请求中发送多部分/表单数据和嵌套 json?

API Gateway - 发布多部分/表单数据

Alamofire 2.0 多部分表单数据错误

如何解决 Http 401 错误,但在邮递员中工作,而不是在 xamarin 表单中工作