Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sending multipart/mixed content with Postman Chrome extension

I'm struggling with creating POST multipart/mixed request with Postman Chrome extension

Here is my curl request what works nice

curl -H "Content-Type: multipart/mixed"  -F "metadata=@simple_json.json; type=application/json " -F "[email protected]; type=image/jpg" -X POST http://my/api/item -i -v 

interesting part of response

Content-Length: 41557

Expect: 100-continue

Content-Type: multipart/mixed; boundary=----------------------------8aaca457e117

  • additional stuff not fine transfer.c:1037: 0 0
  • HTTP 1.1 or later with persistent connection, pipelining supported

And when I use Postman enter image description here

I getting such response

{"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"} 

That's it - I wish to get rid of that error. If some more information needed please ask :)

like image 857
pbaranski Avatar asked Oct 04 '13 10:10

pbaranski


People also ask

What is multipart header?

Multipart Content-Type headers identify multipart messages. They require that a subtype and other elements be included in the header. multipart/alternative [RFC1521] The multipart/alternative content type is used when the same information is presented in different body parts in different forms.

How can I send form data in Postman?

POST request to send a form (multipart/form-data) To send a POST request, select the POST request method, click on Body, and select form-data. If you look at the response body, you will notice that the data you have submitted.

Can we send multipart form data in Postman?

UPDATE: I have created a video on sending multipart/form-data requests to explain this better. Actually, Postman can do this. You DON'T need to add any headers, Postman will do this for you automatically. Be careful with explicit Content-Type header.


1 Answers

I was facing this problem too. Short answer: remove the Content-Type header from your Postman request.

The long story is that the Content-Type for a multipart request should be rather special -- it should look kind of like this:

multipart/form-data; boundary=----WebKitFormBoundaryzeZR8KqAYJyI2jPL 

The problem is that the boundary is important and it needs to exactly match the boundary used to separate the files being uploaded. The solution is simple: do not specify a Content-Type! When you upload files, Postman will automatically append the above content type for you, except the boundary will be filled in with whatever Postman or Chrome is using to separate the multipart content.

You can verify this behavior by using Chrome developer tools (within Postman) to examine the Content-Type header being added, in addition to the Content-Disposition headers of the multipart data, which are also a pain to construct manually (and impossible within Postman).

Note: My answer is a solution for those who need a multipart/form-data answer. The OP was looking for a multipart/mixed solution. My answer will not suffice in this scenario. That being said, it seems a lot of people just want the multipart/form-data solution, so I will leave my answer here.

like image 78
Kirk Woll Avatar answered Sep 18 '22 15:09

Kirk Woll