如何用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 数据的主要内容,如果未能解决你的问题,请参考以下文章