0

我必须在服务器页面上做什么以及如何接收这个 xml 文件?我被困住了。xml 很好,使用 simplexml_load_string 检查。

 $var='caca';
 $login_xml ='<xml>'.
         '<action>log_in</action>'.
     '<parameters>'.
         '<username>'.$var.'</username>'.
     '<pass>abdef01</pass>'.
     '</parameters>'.
     '</xml>';

 $URL = "http://myurl.com/login.php/";


 $ch = curl_init($URL);
 curl_setopt($ch, CURLOPT_MUTE, 1);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
 curl_setopt($ch, CURLOPT_POSTFIELDS, "$login_xml");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($ch);
 curl_close($ch);

感谢您的时间。

4

2 回答 2

2

由于数据是作为文本/xml 发送的,而不是作为 url 编码的表单数据发送的,所以不能使用 $_POST。您必须从 php://input 流中读取原始请求

$xml = file_get_contents('php://input');
于 2012-05-21T21:37:37.673 回答
0

您的 CURLOPT_POST_FIELDS 中有错误:此选项必须是数组:

...
$data = array('xml' => $login_xml);
...

接着:

...
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
...

这会将值“xml”作为 post 字段发送;

希望这可以帮助。

于 2012-05-21T20:43:28.413 回答