我正在向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"