使用Postman Chrome扩展程序发送多部分/混合内容

pba*_*ski 47 curl google-chrome http-headers http-request postman

我正在努力使用Postman Chrome扩展程序创建POST多部分/混合请求

这是我的卷曲请求什么效果很好

curl -H "Content-Type: multipart/mixed" 
-F "metadata=@simple_json.json; type=application/json "
-F "content=@1.jpg; type=image/jpg" -X POST http://my/api/item -i -v
Run Code Online (Sandbox Code Playgroud)

有趣的回应部分

内容长度:41557

期待:100-继续

内容类型:multipart/mixed; 边界= ---------------------------- 8aaca457e117

  • 额外的东西不精细transfer.c:1037:0 0
  • 具有持久连接的HTTP 1.1或更高版本,支持流水线操作

当我使用Postman时 在此输入图像描述

我得到了这样的回应

{"message":"Could not parse multipart servlet request;
 nested exception is org.apache.commons.fileupload.FileUploadException: 
 the request was rejected because no multipart boundary was     
 found","type":"error","status":500,"requestId":"1861eloo6fpio"}
Run Code Online (Sandbox Code Playgroud)

就是这样 - 我希望摆脱那个错误.如果需要更多信息请问:)

Kir*_*oll 86

我也面临着这个问题.简答:Content-Type从邮递员请求中删除标题.

长篇大论是,Content-Type对于多部分请求应该是相当特殊的 - 它应该看起来像这样:

multipart/form-data; boundary=----WebKitFormBoundaryzeZR8KqAYJyI2jPL
Run Code Online (Sandbox Code Playgroud)

问题是边界很重要,它需要与用于分隔上传文件的边界完全匹配.解决方案很简单:不要指定Content-Type!当您上传文件时,邮递员会自动为您添加上述内容类型,但边界将填入Postman或Chrome用于分隔多部分内容的任何内容.

您可以使用Chrome开发人员工具(在Postman中)来检查此行为,以检查Content-Type要添加的Content-Disposition标头,以及多部分数据的标头,这也是手动构建的痛苦(在Postman中是不可能的).

注意:我的答案是那些需要multipart/form-data答案的人的解决方案.OP正在寻找multipart/mixed解决方案.在这种情况下,我的答案是不够的.话虽这么说,似乎很多人只是想要multipart/form-data解决方案,所以我会在这里留下我的答案.

  • 尝试删除内容类型,但不起作用.curl请求有效但从POSTMAN尝试时失败 (4认同)
  • 当删除显式头时,Postman包含`multipart/form-data`,它与`multipart/mixed`不同. (4认同)