I have a simple helloWorld example in a xmlrpc version.
The xmlrpc implementation that i have used is the pear package XML_RPC
1.5.1.
The problem ocurrs when the server send back the response, i always
receive the error "Invalid return payload:enable debuggin..".
With debug enabled the output is this:
---GOT---
HTTP/1.1 200 OK
Date: Mon, 11 Dec 2006 16:37:42 GMT
Server: JWS (Unix) PHP/4.4.4 mod_fastcgi/2.4.2
X-Powered-By: PHP/4.4.4
Content-Length: 538
Connection: close
Content-Type: text/xml; charset=UTF-8
<?xml version="1.0" encoding="UTF-8"?>
<!-- PEAR XML_RPC SERVER DEBUG INFO:
0 - class xml_rpc_value {
var $me =
array (
'string' => 'Jose',
);
var $mytype = 1;
}
vvv POST DATA RECEIVED BY SERVER vvv
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>helloWorld</methodName>
<params>
<param>
<value><string>Jose</string></value>
</param>
</params>
</methodCall>
^^^ END POST DATA ^^^
-->
<methodResponse>
<params>
<param>
<value><string>Hola Jose</string></value>
</param>
</params>
</methodResponse>
---END---
*Function Call:* helloWorld( Jose )
*Sent XML Message:*
<?xml version="1.0" encoding="UTF-8"?> <methodCall>
<methodName>helloWorld</methodName> <params> <param>
<value><string>Jose</string></value> </param> </params> </methodCall>
*Return Value:*
*Received XML Message:*
<methodResponse> <fault> <value> <struct> <member>
<name>faultCode</name> <value><int>2</int></value> </member> <member>
<name>faultString</name> <value><string>Invalid return payload: enable
debugging to examine incoming payload</string></value> </member>
</struct> </value> </fault> </methodResponse>
**************************
The client source code:
require_once("XML/RPC.php");
$nombre = "Jose";
$function = "helloWorld";
$p1 = new XML_RPC_Value($nombre, "string");
$params = array();
$params[] = $p1;
$message = new XML_RPC_Message($function, $params);
$client = new XML_RPC_Client("/pruebas/servicio.php", "www.wiloc.srv", 80);
$client->setDebug(true);
$result = $client->send($message);
echo "<p><b>Function Call:</b> $function( $nombre )</p>";
echo "<p><b>Sent XML Message:</b>";
echo "<pre>" . htmlentities($message->serialize()). "</pre></p>";
$value = $result->value();
echo "<p><b>Return Value:</b> $value </p>";
echo "<p><b>Received XML Message:</b>";
echo "<pre>" . htmlentities($result->serialize()) . "</pre></p>";
************************************
And the server source code:
**********************************
require_once("XML/RPC/Server.php");
$getnamelength_sig2 = array(array("string","string"));
$getnamelength_doc2 = "Hola mundo en xmlrpc";
function helloWorld($name)
{
$name1 = $name->getParam(0);
$result = new XML_RPC_Value("Hola ".$name1->getval(), "string");
return new XML_RPC_Response($result);
}
$map = array("helloWorld" =>
array("function" => "helloWorld",
"signature" => $getnamelength_sig2,
"docstring" => $getnamelength_doc2));
$server = new XML_RPC_Server($map,0,1);
$server->service();
What is wrong in this very simple example?
Thanks a lot,
Jose.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php