如何用Curl 来post xml 数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Curl 来post xml 数据相关的知识,希望对你有一定的参考价值。

参考技术A 因为登陆服务升级,密码策略变更,以前的测试脚本中的用户密码已经不能登陆,试图通过API直接更改密码,一种是直接update,一种是change,使用curl的时候均未成功。
最后索性重新用curl命令创建新的用户,一番摸索下来,注册用户仅支持私有端口。剩下的问题就是如何使用curl来postxml 文件。
经过一番查找,终于找到了curl使用post的命令:
[java] view plaincopy
echo '<?xml version …>'|curl -X POST -H 'Content-type:text/xml' -d @- 10.206.30.32:8081/loginregistration/register
其中<?xml version …>就是要post的xml 文件,8081是私有端口。
例子:
Request:

[java] view plaincopy
echo '<?xml version="1.0" encoding="utf-8" ?><user>......</user>'|curl -X POST -H 'Content-type:text/xml' -d @- 10.206.30.32:8081/loginregistration/register
Response:

[java] view plaincopy
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user>......</user>
参考技术B 用这个。
你的伺服器需能够读取xml。
<?php

$url = "http://你要post的伺服器";

$post_string = '<?xml version="1.0" encoding="UTF-8"?>
<rootNode>
<innerNode>
</innerNode>
</rootNode>';

$header = "POST HTTP/1.0 \r\n";
$header .= "Content-type: text/xml \r\n";
$header .= "Content-length: ".strlen($post_string)." \r\n";
$header .= "Content-transfer-encoding: text \r\n";
$header .= "Connection: close \r\n\r\n";
$header .= $post_string;

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);

$data = curl_exec($ch);

if(curl_errno($ch))
print curl_error($ch);
else
curl_close($ch);

?>本回答被提问者和网友采纳

如何用cmd发送post修改请求

我想用post共享端口修改aerfaying.com的数据,有人成功过(用cmd)咋么弄的啊?

参考技术A Windows下可以借助软件工具实现,常用的工具有Postman等本回答被提问者采纳

以上是关于如何用Curl 来post xml 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何用C/C++模拟post提交数据,获得http相应。

如何用cmd发送post修改请求

三种方法教你如何用PHP模拟post提交数据

如何用http post的方式发送一个xml格式的数据,并且response一个xml格式的数据

如何用Java向kafka发送json数据

如何用Java向kafka发送json数据