curl是否需要一些特殊的参数来强制执行字符集/编码



我正在使用curl命令向web服务发送一个大文件(100 MB以上)。我注意到,只有当我使用curl将文件发送到web服务时,文件才会被破坏,数据也会丢失。

这是我用来发送文件的命令:

curl -v --raw -X POST  -H "Transfer-Encoding: chunked" -H "Content-Type: text/xml; charset=UTF-8" -d @medline16n0736.xml "http://localhost:2323/TestWebService"

我是不是错过了什么?我认为告诉它使用text/xmlcharset=UTF-8会在web服务接收到它后保持UTF-8。

您要求curl使用-d选项发布XML文件,该选项将像通过application/x-www-webform-urlencoded格式的HTTP Web表单提交文件一样发布该文件。要单独发布文件,请使用-T选项。此外,您正在使用--raw选项,该选项将禁用HTTP传输编码的处理,即使您正在发送Transfer-Encoding: chunked标头。移除--raw-T将检测报头以启用分块。

您还要求curl发送一个Content-Type头,告诉WebService上传的数据是UTF-8编码的XML。您有责任确保XML文件实际上是UTF-8编码的。Curl不会帮你检查的。

最新更新