meanbcp
6 years agoNew Contributor
How to set content type for multipart/form-data part?
I have a multi-part request with two parts, a file and json metadata. The "file" part I can set the content-type through the attachment, but the "json" part seems to be defaulting to application/octet-stream which causes a 415.
POST http://localhost:9080/foo HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: multipart/form-data; boundary="----=_Part_16_1749562154.1557927365085" MIME-Version: 1.0 Content-Length: 53766 Host: localhost:9080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_181) ------=_Part_16_1749562154.1557927365085 Content-Disposition: form-data; name="json" { "foo" : "bar", "foo1" : "bar1" } ------=_Part_16_1749562154.1557927365085 Content-Type: image/jpeg Content-Transfer-Encoding: binary Content-Disposition: form-data; name="file"; filename="royal flush.jpg" ...
This causes a 415 Content type 'application/octet-stream' not supported.
Here is a snippet form the request (through Postman) which works:
Content-Disposition: form-data; name="json" Content-Type: application/json Content-Length: 608 { "foo" : "bar", "foo1" : "bar1" } --B7pQWGrOXLWmnqGJ6JvxJJWBMoXDNZn2H Content-Disposition: form-data; name="file" Content-Type: image/jpeg Content-Length: 53275 ...
When I change the content-type of the json part to application/octet-stream in Postman, I can reproduce the 415. So it seems if there is a way in ReadyAPI to set the content-type to application/json, I can POST successfully. But I do not see any options in ReadyAPI to do so.
Thanks for any help in advance!
Gene.