2010-07-23 2 views
1

Я скачал phpxmlrpc из http://phpxmlrpc.sourceforge.net/Нужна помощь с XMLRPC в PHP

У меня есть папка на моем веб-сервер под названием XmlRpc-тест и иметь простой тест 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. Это похоже на настоящий kludge, потому что браузер не дает видимых признаков того, что он делает это, но это стандартное поведение. Если вы заходите в Firebug или на консоль и смотрите на сетевой трафик, вы увидите это из первых рук.

Во-вторых, Этот пример выглядит как один из книги «Мастер ...» о Joomla. Вполне возможно, что любой из многочисленных недостатков и настроек конфигурации в любом месте стека технологий может стать препятствием. Сегодня я столкнулся с тем же вопросом. Настоящий урок, чтобы узнать здесь, «не делай этого». Используйте среду разработки, которая имеет лучшую поддержку цепочки инструментов и более простой путь к успеху.

+1

Я потратил около недели, пытаясь получить эту работу, прежде чем сдаться. Что за трата времени! – jax