1、xmlrpc概念
xml rpc是使用http協議做為傳輸協議的rpc機制,使用xml文字的方式傳輸命令和資料。乙個rpc系統,必然包括2個部分:2、搭建rpc服務端首先定義伺服器中執行的方法,然後建立xml rpc物件,註冊兩個方法,獲取從客戶端傳來的資料,伺服器傳過來的資料是乙個xml請求資料,最後呼叫伺服器中的方法,返回的資料格式也是xml資料格式。1.rpc client,用來向rpc server呼叫方法,並接收方法的返回資料;
2.rpc server,用於響應rpcclient的請求,執行方法,並回送方法執行結果。rpc是remote procedure call的縮寫,翻譯成中文就是遠端過程呼叫,是一種在本地的機器上呼叫遠端機器上的乙個過程(方法)的技術,這個過程也被大家稱為「分布式計算」,是為了提高各個分立機器的「互操作性」而發明出來的技術。
<?php
//定義可以被訪問的方法
function
hello
()//rpc server在呼叫函式時呼叫的引數是
// array(0=>'函式名',1=>array(實參1,實參2,實參3....),2=>null)
function
sum($method,$args,$extra)
//建立xmlrpc server
$server = xmlrpc_server_create();
xmlrpc_server_register_method($server, 'hello', 'hello');
xmlrpc_server_register_method($server, 'sum', 'sum');
//收取請求
//呼叫方法
$response = xmlrpc_server_call_method($server, $request, null);
//輸出資料
header('content-type:text/xml;charset=utf-8');
echo
$response;
//銷毀xmlrpc server資源
xmlrpc_server_destroy($server);
?>
3、搭建rpc客戶端首先定義了乙個類,名為rpcclient,類中主要有3個方法,乙個為__call方法,這是乙個魔術方法,當呼叫類中不存在的方法時就會觸發此模式方法,將方法名和引數包裝成xml資料,然後呼叫類中的第二個方法__query方法,在該方法中包裝乙個http post請求,請求攜帶的資料就為__call方法中形成的xml資料,然後訪問該請求。最後將獲得的xml資料解析為php格式。
<?php
class
rpcclient
//請求遠端伺服器
private
function
__query
($request)
//魔術方法
public
function
__call
($method,$params)
}//測試呼叫
'hello方法:'.$client->hello().'
';//呼叫遠端伺服器中的hello方法
echo
'sum方法:'.$client->sum(1,2,3);//呼叫遠端伺服器中的sum方法
?>
執行結果:
使用 xml rpc 遠端呼叫
xml rpc可以看做是web service的簡化版,他們的區別是soap可以傳複雜的物件,而xml rpc呼叫只能傳簡單的型別,如string,int,double,boolean,byte,string.xml rpc呼叫簡單,尤其和ejb遠端呼叫相比,ejb遠端呼叫,客戶端必須用伺服器的ho...
使用cxf整合spring發布webservice
在工作中有些公司是會使用較老的發布方式來對外發布介面,比如webservice,這裡介紹的是使用spring 整合cfx發布webservice提供對外介面給其他公司 或別人 使用。cxf也是目前最流行的一種發布webservice方式。所需要的jar 因為臨時寫的,只是svn上截圖下來的 加入這幾...
使用XML RPC來控制Webmin
最近要搞到webmin這個東西,仔細看了看 耦合的還真是緊密。既然要管理伺服器。不可能自己重寫一套方案了,於是乎還是修改webmin,取我所用的改寫一些模組 1 使用soap lite這個包 這個包包含了xml rpc,soap等常用的封裝 2 apache perl cgi 安裝 在conf.ph...