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

Naw*_*awa 8 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

但内容类型request将是plain/text

spl*_*tch 10

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

curl -H "Content-Type: multipart/mixed" -F "request={"param1": "value1"};type=application/json"
Run Code Online (Sandbox Code Playgroud)


rak*_*sja 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
Run Code Online (Sandbox Code Playgroud)

确保转义有效负载内容,somevalid.xml应该存在于执行curl的同一目录中,或者用文件的有效路径替换它.