在CURL中设置多部分/混合请求的一部分的内容类型

时间:2014-12-01 14:53:22

标签: curl

我想在一个http请求中发送json请求和几个文件。我正在使用multipart/mixed请求

curl -H "Content-Type: multipart/mixed" -F "request=@body.json; type=application/json" -F "file1=@2.xml" -F "file2=@2.pdf" -X POST hostName

request字段具有application/json内容类型,根据该指示,我定义此部分是json请求,其他部分是文件。

我的问题是如何在curl请求中内联请求正文。我尝试使用

curl -H "Content-Type: multipart/mixed" -F "request={"param1": "value1"}" -F "file1=@2.xml" -F "file2=@2.pdf" -X POST hostName

request的内容类型为plain/text

2 个答案:

答案 0 :(得分:10)

您可以在分号后添加内容类型信息:

curl -H "Content-Type: multipart/mixed" -F "request={"param1": "value1"};type=application/json"

答案 1 :(得分:5)

要使用curl命令附加有效负载和文件,有些人会这样做。

curl -i -X POST -H "Content-Type: multipart/mixed" \
-F "somepayload={\"name\":\"mypayloadname\"};type=application/json" \
-F "uploadfile=@somevalid.xml" http://localhost:8080/path/topost

确保您转义有效内容,并且somevalid.xml应该存在于执行curl的同一目录中,或者将其替换为文件的有效路径。