【问题标题】:How do I access XML-RPC data from PHP?如何从 PHP 访问 XML-RPC 数据?
【发布时间】:2011-07-28 05:32:27
【问题描述】:

远程服务器正在通过 RPC 将 XML POST 到我的服务器。当我打开 mod 安全性时,我可以在我的 Apache 日志中看到 XML,但我无法从我的 PHP 脚本访问 XML。应该是 POST 请求,但是 $_POST 数组是空的。

我的理解是 RPC 应该用数据调用我的函数,但这似乎没有发生。

这个非常简单的脚本应该将 XML 写入日志文件,但它什么也没做:

include_once('xmlrpc/xmlrpc.inc'); include_once('xmlrpc/xmlrpcs.inc'); 函数 ImportOrders($xml) { $FH=fopen('Log/In.txt','a'); fwrite($FH,'收到的包裹:'.print_r($xml,true)."\n"); // 设置合适的响应码 $响应 = 0; // 查看此应用程序定义的响应代码 // 发送成功或失败响应码 如果($响应 == 0) 返回新的xmlrpcresp(新的xmlrpcval($response,“字符串”)); 别的 返回新的 xmlrpcresp(0, $response, $error_message); } $Server = 新的 xmlrpc_server( array("ImportOrders"=>array("函数"=>"ImportOrders") ) );

他们给我发了这个:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<methodCall>
<methodName>ImportOrders</methodName>
<params>
<param>
<value><int>2</int></value>
</param>
<param>
<value><struct>
<member><name>order_0</name>
<value><struct>
<member><name>order_id</name>
....

为什么我的函数没有被调用?!?

【问题讨论】:

    标签: php xml xml-rpc


    【解决方案1】:

    知道了!显然数据在“$GLO​​BALS['HTTP_RAW_POST_DATA']”中。

    需要'kd_xmlrpc.php'; $xmlrpc_request = XMLRPC_parse($GLOBALS['HTTP_RAW_POST_DATA']); $methodName = XMLRPC_getMethodName($xmlrpc_request); $params = XMLRPC_getParams($xmlrpc_request); 进口订单($params); 函数 ImportOrders($params) { $FH=fopen('Log/In.txt','a'); fwrite($FH,'OrderDataRes 已加载。'."\n"); fwrite($FH,'$params: '.print_r($params,true)."\n"); }

    我也在使用不同的库,来自: http://www.keithdevens.com/software/xmlrpc/source.php

    【讨论】:

      猜你喜欢
      • 2015-01-15
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 2012-04-29
      • 2011-08-25
      • 2017-05-17
      • 2015-01-06
      • 2011-05-19
      相关资源
      最近更新 更多