2010-07-23 51 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