2010-07-23 92 views
1

我从http://phpxmlrpc.sourceforge.net/需要与XML-RPC帮助在PHP

下载PHPXMLRPC我有我的web服务器被称为XML-RPC测试的文件夹,并有一个简单的测试PHP应用程序创建的。

<?php 
include 'xmlrpc.inc'; 
include 'xmlrpcs.inc'; 

function sumAndDifference ($params) { 

    // Parse our parameters. 
    $xval = $params->getParam(0); 
    $x = $xval->scalarval(); 
    $yval = $params->getParam(1); 
    $y = $yval->scalarval(); 

    // Build our response. 
    $struct = array('sum' => new xmlrpcval($x + $y, 'int'), 
        'difference' => new xmlrpcval($x - $y, 'int')); 
    return new xmlrpcresp(new xmlrpcval($struct, 'struct')); 
} 

// Declare our signature and provide some documentation. 
// (The PHP server supports remote introspection. Nifty!) 
$sumAndDifference_sig = array(array('struct', 'int', 'int')); 
$sumAndDifference_doc = 'Add and subtract two numbers'; 

new xmlrpc_server(array('sample.sumAndDifference' => 
         array('function' => 'sumAndDifference', 
           'signature' => $sumAndDifference_sig, 
           'docstring' => $sumAndDifference_doc))); 
?> 

我已经加载了PHPXMLRPC调试,进入地址:,端口:和路径:但是当我按下执行键List available methods没有任何反应。

问题1:为什么我的本地调试器不工作?

所以我在这里上网http://phpxmlrpc.sourceforge.net/jsxmlrpc/debugger/debugger.html它似乎更好。

但是,当我在这里按执行按钮(在输入我的服务器详细信息后),我收到以下消息。

故障代码:[5]原因:'没有收到来自远程服务器的200 OK。 (发送失败)”

我认为这可能意味着有什么问题我的本地服务器和WAN所以我在http://feedvalidator.org/测试的应用程序,我其实做得到回应。

1. <?xml version="1.0"?> 
    2. <methodResponse> 
    3. <fault> 
    4. <value> 
    5. <struct><member><name>faultCode</name> 
    6. <value><int>105</int></value> 
    7. </member> 
    8. <member> 
    9. <name>faultString</name> 
    10. <value><string>XML error: Invalid document end at line 1, column 1</string></value> 
    11. </member> 
    12. </struct> 
    13. </value> 
    14. </fault> 
    15. </methodResponse> 

我认为这是一个错误,因为没有有效载荷被发送。

问题2:我该如何解决这个问题?我怎样才能得到一个非常简单的xmlrpc服务器使用PHP?

回答

0

对于后代,我会给我的建议。

首先, 由于安全沙箱的无声破坏,您的本地调试程序不起作用。 W3C和浏览器供应商制定了一种方案,浏览器将悄悄地将您的调试器发送的POST请求转换为OPTION请求。它看起来像一个真正的混乱,因为浏览器没有看到它正在做这件事,但它是标准行为。如果您进入Firebug或控制台并查看网络流量,您将亲眼看到它。

二, 这个例子看起来像是关于Joomla的“Master ...”书。很可能,任何沿着技术堆栈的任何缺陷和配置设置都可能是障碍。今天我遇到了同样的问题。在这里学习的真正教训是,“不要这样做”。使用具有更好工具链支持和更直接的成功路径的开发环境。

+1

我花了大约一周的时间试图让这个工作放弃之前。多浪费时间! – jax 2010-11-20 15:14:13