为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

缥缈止盈 2019-11-21 15:16:35
如何从命令行使用curl 将xml文件发送/发布到本地服务器http:// localhost:8080?我应该使用什么命令?
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如果该问题与您的其他Hudson问题有关,请使用它们提供的命令。从命令行使用XML的这种方式:


$ curl -X POST -d '<run>...</run>' \

http://user:pass@myhost:myport/path/of/url

您需要对其进行一些更改以从文件中读取:


 $ curl -X POST -d @myfilename http://user:pass@myhost:myport/path/of/url

阅读联机帮助页。遵循-d参数的抽象。


-d /-数据


(HTTP)将POST请求中的指定数据发送到HTTP服务器,就像用户填写HTML表单并按Submit按钮时浏览器所做的一样。这将导致curl使用内容类型application / x-www-form-urlencoded将数据传递到服务器。比较-F /-形式。


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


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


如果以字母@开头的数据,则其余的应该是从中读取数据的文件名,或者-如果希望curl从stdin中读取数据。文件的内容必须已经被URL编码。也可以指定多个文件。因此,将使用--data @foobar从名为“ foobar”的文件中发布数据。


查看完整回答
反对 回复 2019-11-21
?
HUWWW

TA贡献1874条经验 获得超12个赞

使用Jenkins 1.494,我能够使用curlwith --form参数将文件发送到Ubuntu Linux 12.10上的job 参数:


curl --form name=myfileparam --form file=@/local/path/to/your/file.xml \

  -Fjson='{"parameter": {"name": "myfileparam", "file": "file"}}' \

  -Fsubmit=Build \

  http://user:password@jenkinsserver/job/jobname/build

在Jenkins服务器上,我配置了一个接受单个参数的作业:名为的文件上传参数myfileparam。


该curl调用的第一行构造了一个Web表单,其参数名为myfileparam(与作业中相同);其值将是名为的本地文件系统上文件的内容/local/path/to/your/file.txt。该@符号前缀告诉curl发送的,而不是给定文件名的本地文件。


第二行定义了与第一行的表单参数相匹配的JSON请求:名为的文件参数myfileparam。


第三行激活表单的“生成”按钮。第四行是带有“ / build”后缀的作业URL。


如果此调用成功,则curl返回0。如果未成功,则将服务中的错误或异常打印到控制台。这个答案来自有关Hudson的旧博客文章,该文章很多,我根据我的需要对其进行了解构和重新设计。


查看完整回答
反对 回复 2019-11-21
  • 3 回答
  • 0 关注
  • 1074 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信