用于多部分/表单数据的 POSTMAN

问题描述 投票:0回答:5

如何使用具有自定义标头的 Multipart/form-data 的 POSTMAN 来测试我的控制器,该控制器采用 2 个文件作为参数 (

public  ... controller( MultipartFile[] files)
)?

POST .... HTTP/1.1
.
.
.
---boundary123
Content-type:application/octet-stream
content-Disposition: form-data filenale="abc.txt" name="someuniquename"
[paylaod content](this is in xml format)
---boundary123
content-type:application/json
content-Disposition:form-data name="metadata"
{ID:"999"}
---boundary123
spring web-services rest multipartform-data postman
5个回答
67
投票

在Postman中使用'Multipart/form-data'的步骤

  1. 创建新标签页
  2. 插入控制器网址
  3. 将方法类型设置为POST
  4. 正文选项卡下,选择表单数据
  5. 对于作为文件的每个键,将 Value 类型设置为 File

10
投票

我希望这能帮助其他人避免长时间的调试工作。底线是,对于某些分段上传,您只是运气不佳。例如,如果您需要执行多部分/相关操作,并且需要在 headers 中使用 Content-Type 来表达,Postman 无法帮助您。主要是因为邮递员仅生成随机边界,即使您添加自己的边界也是如此。困难的部分是,Postman 将“声称”在 Postman 控制台中使用您的边界,但实际上会在调用中使用不同的边界。因此声明的标头边界和实际使用的边界将不匹配。 这是来自 Postman 的请求示例,可以在 Postman 控制台和 Fiddler 中查看。正如您所看到的,Fiddler 显示 Postman 实际上正在发送随机边界,其中 Postman 声称使用提供的边界。

我真的希望他们能在 Postman 中解决这个问题。至少向其展示邮递员控制台,即使他们没有解决根本问题。对于大多数 API 来说,它都是一个很棒的工具,但如果您尝试访问 DICOM 服务器并遵守它的规定……那么您就不走运了。


3
投票
Content-Type

标头设置为

multipart/mixed
,然后将所有内容都转换为文件。如果是文本,您可以忽略“将其转换为文件”步骤:)

留下此评论:

https://github.com/postmanlabs/postman-app-support/issues/1104

Ninja 更新

:不确定这是否对其他人有帮助,但对于在单个多部分 POST 请求中上传多个文件类型/内容类型的特定场景,有一个解决方法。

将标题
    Content-Type
  1. 设置为
    multipart/mixed
    选择 
  2. form-data
  3. 中的
    Body
    选项。
    将所有项目转换为文件。字符串内容应成为文本文件等
  4. 通过选择
  5. file
  6. 添加每个文件,添加密钥名称。
    
    
    
  7. 此方法并不需要实际手动指定每个
Content-Type

Content-Disposition
。这里的技巧是将所有相关内容序列化为持久文件类型。希望对某人有帮助!
    


0
投票

我有一个端点将接受多部分,其中一部分是图像/*或音频/*。

我在Postman中导入的openApi是这样的:

encoding: asset_file: contentType: image/*, audio/*

问题是我试图上传音频,服务器会检查收到的
contentType

的值,具体取决于它的开头。

Postman中的问题是

Content-Type

列默认是隐藏的

enter image description here 我花了一段时间才意识到然后展示出来以便我自己修改

enter image description here


-5
投票
此视频

介绍了如何使用邮递员发布多部分/表单数据。我上传了一个内容类型为 multipart/form-data 的文本文件。

© www.soinside.com 2019 - 2024. All rights reserved.