使用curl命令行发送/发布xml文件

我如何使用curl从命令行发送/发布xml文件到本地服务器http:// localhost:8080?

我应该使用什么命令?


如果该问题与其他哈德森问题相关联,请使用他们提供的命令。

$ curl -X POST -d '<run><log encoding="hexBinary">4142430A</log><result>0</result><duration>2000</duration></run>' 
http://user:pass@myhost/hudson/job/_jobName_/postBuildResult

您需要稍微改变它以从文件中读取:

 $ curl -X POST -d @myfilename http://user:pass@myhost/hudson/job/_jobName_/postBuildResult

阅读联机帮助页。 遵循-d参数的摘要。

-d / - 数据

(HTTP)将POST请求中的指定数据发送到HTTP服务器,方式与浏览器在用户填写HTML表单并按下提交按钮时执行的操作相同。 这将导致curl使用内容类型application / x-www-form-urlencoded将数据传递到服务器。 与-F / - 表单比较。

-d / - 数据与--data-ascii相同。 要发布纯二进制数据,您应该使用--data-binary选项。 要对表单字段的值进行URL编码,您可以使用--data-urlencode。

如果这些选项中的任何一个在同一命令行上多次使用,则指定的数据片段将与分隔&符号合并在一起。 因此,使用'-d name = daniel -d skill = lousy'会产生一个看起来像'name = daniel&skill = lousy'的帖子。

如果你用字母@开始数据,其余的应该是一个文件名来读取数据,或者 - 如果你想curl从标准输入读取数据。 该文件的内容必须已经被URL编码。 还可以指定多个文件。 因此,从名为'foobar'的文件发布数据将使用--data @foobar完成。


从手册页,我相信这些是你正在寻找的机器人:

-F/--form <name=content>

(HTTP)这允许curl模拟用户按下提交按钮的填充表单。 这会导致根据RFC2388使用Content-Type multipart / form-data卷曲POST数据。 这样可以上传二进制文件等。要强制“内容”部分成为文件,请在文件名前加上@符号。

例如,将密码文件发送到服务器,其中'password'是/ etc / passwd将作为输入的表单字段的名称:

curl -F password=@/etc/passwd www.mypasswords.com

所以在你的情况下,这将是类似的
curl -F file=@/some/file/on/your/local/disk http://localhost:8080


你可以使用选项--data和文件。

将xml内容写入名为soap_get.xml的文件并使用curl命令发送请求:

curl -X POST -header“Content-Type:text / xml; charset = UTF-8”--data @ soap_get.xml your_url

链接地址: http://www.djcxy.com/p/48557.html

上一篇: send/post xml file using curl command line

下一篇: HTTP POST and GET using cURL in Linux