加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

xmlrpc 实例

发布时间:2020-12-17 02:45:31 所属栏目:安全 来源:网络整理
导读:版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan xmlrpc是webservice 大家都说比soap要简单...我怎么没看出来,代码都写的很多?

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

xmlrpc是webservice

大家都说比soap要简单...我怎么没看出来,代码都写的很多?

当然也要有server 和 client 端

<?php

/**

?* @name xmlrpcTest.php

?* @date Fri Jan 25 12:11:54 CST 2008

?* @copyright 马永占(MyZ)

?* @author 马永占(MyZ)

?* @link http://blog.csdn.net/mayongzhan/

?*/

?

/**

* Math methods

*/

class Math

{

?????? /**

?????? * Return the sum of all values in an array

?????? *

?????? * @param array $values An array of values to sum

?????? * @return int

?????? */

?????? public static function add($method,$params)

?????? {

????????????? return array_sum($params[0]);

?????? }

}

/**

* Return the product of some values

*

* @param string $method The XML-RPC method name called

* @param array $params Array of parameters from the request

* @return int

*/

function product($method,$params)

{

?????? return $params;

}

?>

server

<?php

/**

?* @name xmlrpcTestServer.php

?* @date Fri Jan 25 12:11:54 CST 2008

?* @copyright 马永占(MyZ)

?* @author 马永占(MyZ)

?* @link http://blog.csdn.net/mayongzhan/

?*/

require('xmlrpcTest.php');

//产生一个XML-RPC的服务器端

$xmlrpc_server = xmlrpc_server_create();

//注册一个服务器端调用的方法rpc_server,实际指向的是rpc_server_func函数

xmlrpc_server_register_method($xmlrpc_server,'math.add',array('Math','add'));

xmlrpc_server_register_method($xmlrpc_server,'product','product');

//接受客户端POST过来的XML数据

$request = $HTTP_RAW_POST_DATA;

//$request = file_get_contents('php://input');

//执行调用客户端的XML请求后获取执行结果

$xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server,$request,null);

//把函数处理后的结果XML进行输出

header('Content-Type: text/xml');

echo $xmlrpc_response;

?

//销毁XML-RPC服务器端资源

xmlrpc_server_destroy($xmlrpc_server);

?

?>

?

client

?

<?php

/**

?* @name xmlrpcTestClient.php

?* @date Fri Jan 25 12:11:47 CST 2008

?* @copyright 马永占(MyZ)

?* @author 马永占(MyZ)

?* @link http://blog.csdn.net/mayongzhan/

?*/

?

try

{

?????? $request = xmlrpc_encode_request('math.add',array(array(1,2)),array('encoding' => 'UTF-8'));

?????? $context = stream_context_create(array('http' => array(

?????? 'method' => "POST",

?????? 'header' => "Content-Type: text/xml",

?????? 'content' => $request

?????? )));

?????? $file = file_get_contents('http://127.0.0.1/test/xmlrpcTestServer.php',false,$context);

??????

?????? if(!file) {

????????????? throw new Exception('错误:得不到webservice的response');

?????? }

??????

?????? $response = xmlrpc_decode($file);

??????

?????? if (is_array($response) && xmlrpc_is_fault($response))

?????? {

????????????? throw new Exception($response['faultString'],

????????????? $response['faultCode']);

?????? }

??????

?????? echo $response;

}

catch (Exception $e)

{

?????? echo $e->getMessage();

}

?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读