client.php:
<?php
require_once "lib/Xmlrpc/xmlrpc.inc";
require_once "lib/Xmlrpc/xmlrpcs.inc";
$client = new xmlrpc_client('http://localhost/webservice/xmlrpc/server.php');
//创建一个实例 调用server.php里的add方法,传递2个参数
$msg = new xmlrpcmsg("add", array(new xmlrpcval(5, "int"),new xmlrpcval(8, "int")));
//服务器返回xmlrpcresp的一个实例
$retval = $client->send($msg);
if ($retval->faultCode())
{
print_r("发生一个错误: ");
print_r("原因: " . htmlspecialchars($retval->faultString()));
}
else
{
//xmlrpcresp //xmlrpcval
echo $retval->value()->scalarval();
}
?>
server.php:
<?php
require_once "lib/Xmlrpc/xmlrpc.inc";
require_once "lib/Xmlrpc/xmlrpcs.inc";
// $add_sig = array(array($xmlrpcString, $xmlrpcInt, $xmlrpcInt));
// $add_doc = "Add the two integer together";
function add($params)
{
//引入用户错误代码值
// global $xmlrpcerruser;
//返回一个PHP数组
$val = php_xmlrpc_decode($params);
$ret = $val[0] + $val[1];
//因为客户端send 方法返回需要一个xmlrpcresp类型,所以包装该返回值
return new xmlrpcresp(new xmlrpcval($ret, "int"));
}
//创建一个xmlrpc_server的实例:
$server = new xmlrpc_server(array(
"add" => array(
"function" => "add",
//"signature" => $add_sig,
// "docstring" => $add_doc
)
)
);
?>
访问 http://localhost/webservice/xmlrpc/client.php 输出: 13