http 标头 - 我可以在不添加"boundary=------"的情况下通过命令行上的 curl 设置内容类型吗?



我正在向Web服务器发送一个命令行curl命令。Web服务器只接受application/xml或application/json类型的内容。我的curl命令(经过轻微编辑)是:

curl -k  --cert certfile --form "fileupload=@test.xml" --cacert cacert.pem https://IP:PORT/v1/all/3131 --header "allowed-domains: foo.net" -H "Content-Type:application/xml"

我发现服务器拒绝了以下内容:

POST load request has invalid type application/xml; boundary=----------------------------dc1435dd0d36

问题是服务器无法识别

"boundary=----------------------------dc1435dd0d36"

有没有办法告诉curl不要把它包括在内?或者这是服务器中的错误?

我在SO上发现了一个相关的问题,但它只涉及可以通过curl_setopt设置curl选项的程序。有没有一种方法可以在命令行上完成这些事情?之前的问题是:

PHP cURL内容长度和内容类型错误的

提前感谢您的帮助!

如果要发送application/xml,则应使用--data而不是发送multipart/form-data--form。在您的情况下,它应该是文件的内容,而不是您想要发送的文件本身。像这样:

curl -k  --cert certfile --data "@test.xml" --cacert cacert.pem https://IP:PORT/v1/all/3131 --header "allowed-domains: foo.net" -H "Content-Type:application/xml"

相关内容

  • 没有找到相关文章

最新更新