亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 擴(kuò)展 > JSON > 正文

php實(shí)現(xiàn)的一個(gè)簡單json rpc框架實(shí)例

2024-09-06 20:18:14
字體:
供稿:網(wǎng)友

 這篇文章主要介紹了php實(shí)現(xiàn)的一個(gè)簡單json rpc框架實(shí)例,本文給出了RPC服務(wù)端和客戶端代碼以及應(yīng)用實(shí)例,需要的朋友可以參考下

  

json rpc 是一種以json為消息格式的遠(yuǎn)程調(diào)用服務(wù),它是一套允許運(yùn)行在不同操作系統(tǒng)、不同環(huán)境的程序?qū)崿F(xiàn)基于Internet過程調(diào)用的規(guī)范和一系列的實(shí)現(xiàn)。這種遠(yuǎn)程過程調(diào)用可以使用http作為傳輸協(xié)議,也可以使用其它傳輸協(xié)議,傳輸?shù)膬?nèi)容是json消息體。

下面我們code一套基于php的rpc框架,此框架中包含rpc的服務(wù)端server,和應(yīng)用端client;

(一)PHP服務(wù)端RPCserver jsonRPCServer.php

 

代碼如下:
class jsonRPCServer {
/**
*處理一個(gè)request類,這個(gè)類中綁定了一些請(qǐng)求參數(shù)
* @param object $object
* @return boolean
*/
public static function handle($object) {
// 判斷是否是一個(gè)rpc json請(qǐng)求
if ($_SERVER['REQUEST_METHOD'] != 'POST' || empty($_SERVER['CONTENT_TYPE'])
||$_SERVER['CONTENT_TYPE'] != 'application/json') {
return false;
}
// reads the input data
$request = json_decode(file_get_contents('php://input'),true);
// 執(zhí)行請(qǐng)求類中的接口
try {
if ($result = @call_user_func_array(array($object,$request['method']),$request['params'])) {
$response = array ( 'id'=> $request['id'],'result'=> $result,'error'=> NULL );
} else {
$response = array ( 'id'=> $request['id'], 'result'=> NULL,
'error' => 'unknown method or incorrect parameters' );}
} catch (Exception $e) {
$response = array ('id' => $request['id'],'result' => NULL, 'error' =>$e->getMessage());
}
// json 格式輸出
if (!empty($request['id'])) { // notifications don't want response
header('content-type: text/javascript');
echo json_encode($response);
}
return true;
}
}

 

(二)Rpc客戶端,jsonRPCClient.php

復(fù)制代碼 代碼如下:
<?php
/*
*/
class jsonRPCClient {

 

private $debug;
private $url;
// 請(qǐng)求id
private $id;
private $notification = false;
/**
* @param $url
* @param bool $debug
*/
public function __construct($url,$debug = false) {
// server URL
$this->url = $url;
// proxy
empty($proxy) ? $this->proxy = '' : $this->proxy = $proxy;
// debug state
empty($debug) ? $this->debug = false : $this->debug = true;
// message id
$this->id = 1;
}

/**
*
* @param boolean $notification
*/
public function setRPCNotification($notification) {
empty($notification) ? $this->notification = false : $this->notification = true;
}

/**
* @param $method
* @param $params
* @return bool
* @throws Exception
*/
public function __call($method,$params) {
// 檢驗(yàn)request信息
if (!is_scalar($method)) {
throw new Exception('Method name has no scalar value');
}
if (is_array($params)) {
$params = array_values($params);
} else {
throw new Exception('Params must be given as array');
}

if ($this->notification) {
$currentId = NULL;
} else {
$currentId = $this->id;
}

// 拼裝成一個(gè)request請(qǐng)求
$request = array( 'method' => $method, 'params' => $params,'id' => $currentId);
$request = json_encode($request);
$this->debug && $this->debug.='***** Request *****'."/n".$request."/n".'***** End Of request *****'."/n/n";
$opts = array ('http' => array (
'method' => 'POST',
'header' => 'Content-type: application/json',
'content' => $request
));
// 關(guān)鍵幾部
$context = stream_context_create($opts);
if ( $result = file_get_contents($this->url, false, $context)) {
$response = json_decode($result,true);
} else {
throw new Exception('Unable to connect to '.$this->url);
}
// 輸出調(diào)試信息
if ($this->debug) {
echo nl2br(($this->debug));
}
// 檢驗(yàn)response信息
if (!$this->notification) {
// check
if ($response['id'] != $currentId) {
throw new Exception('Incorrect response id (request id: '.$currentId.', response id: '.$response['id'].')');
}
if (!is_null($response['error'])) {
throw new Exception('Request error: '.$response['error']);
}
return $response['result'];

} else {
return true;
}
}
}
?>

 

(三) 應(yīng)用實(shí)例
(1)服務(wù)端 server.php

代碼如下:
<?php
require_once 'jsonRPCServer.php';

 

 

代碼如下:
// member 為測(cè)試類
require 'member.php';
// 服務(wù)端調(diào)用
$myExample = new member();
// 注入實(shí)例
jsonRPCServer::handle($myExample)
or print 'no request';
?>

 

(2)測(cè)試類文件,member.php

代碼如下:
class member{
public function getName(){
return 'hello word ' ; // 返回字符串
}
}

 

(3)客戶端 client.php

代碼如下:
require_once 'jsonRPCClient.php';

 

$url = 'http://localhost/rpc/server.php';
$myExample = new jsonRPCClient($url);

共2頁上一頁12下一頁
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
自拍偷拍精选| 久久青青草原| 欧美黄网在线观看| 欧美一区二区三区少妇| 国产精彩视频在线观看免费蜜芽| av老司机在线观看| 成本人h片动漫网站在线观看| 色综合999| 亚洲男人的天堂网站| 久久99精品久久久久久久久久| 亚洲а∨天堂久久精品喷水| 国产精品乱子乱xxxx| 全网国产福利在线播放| 日韩一区二区在线看片| 最近日韩中文字幕| 91精品国产色综合久久不卡98| 色嗨嗨av一区二区三区| chinese叫床对白videos| 手机在线看片1024| 在线观看污网站| 欧美xxxxbbbb| 欧美性猛交丰臀xxxxx网站| 91在线观看污| 亚洲亚裔videos黑人hd| 亚洲第一精品区| 久久久久久久久网| 男人的天堂av网站| 可以免费看不卡的av网站| 在线精品亚洲一区二区不卡| 7777精品久久久大香线蕉小说| 自拍偷拍中文字幕| 理论片鲁丝二区爱情网| 日韩欧美国产成人一区二区| 手机福利在线视频| gratisvideos另类灌满| 手机免费看av| 视频一区二区不卡| 你懂的在线观看视频网站| jizz视频播放器| 国产精品伦理久久久久久| 一区二区成人网| 亚洲成人午夜影院| 中文字幕日韩第一页| 欧美卡一卡二卡三| 在线午夜视频| 国产乱xxⅹxx国语对白| 99久久精品费精品国产风间由美| 老师让我她我爽了好久视频| 99精品视频在线免费播放| 91香蕉在线观看| 97在线视频免费| 侵犯稚嫩小箩莉h文系列小说| 激情综合一区二区三区| 色综合久久悠悠| 国产黄色在线播放| 欧美一区三区二区在线观看| 激情伦成人综合小说| 国产又爽又黄的视频| 午夜免费性福利| 少妇免费视频| 欧美激情亚洲国产| 18禁裸乳无遮挡啪啪无码免费| 先锋资源av在线| 啊啊啊啊啊好爽| 欧美自拍偷拍网| 久草香蕉在线| 怡红院精品视频在线观看极品| 九色视频在线观看免费播放| 精品国产丝袜高跟鞋| 可以在线观看的av| 国产91精品久久久久久久网曝门| 97视频在线观看播放| 国产精品欧美在线| 99视频日韩| 欧美精品欧美精品系列c| 一区二区三区视频播放| 每日在线更新av| 国产偷亚洲偷欧美偷精品| 国产香蕉一区二区三区在线视频| 精品亚洲男同gayvideo网站| 欧美 日韩 国产精品免费观看| 日韩激情毛片| 免费黄色日本网站| 精品中文字幕不卡在线视频| 午夜精品视频一区二区三区在线看| 亚洲综合免费观看高清完整版在线| 洋洋成人永久网站入口| av不卡一区二区| 亚洲精品久久久久久久久久久久久久| 亚洲视频三区| 欧美精品在线观看一区二区| 三年片免费观看大全| 亚洲福利视频二区| 亚洲国产日韩在线一区| 久久电影网站| 中文资源在线播放| 影音先锋男人资源站在线观看| 欧美成人午夜激情| 偷拍自拍在线看| 亚洲乱码国产乱码精品精的特点| 在线观看成人av| 青青草免费在线视频观看| 一区二区三区四区在线观看视频| 日韩av大片在线| 国产精品自产拍| 国产成人无码精品久久久性色| 久久综合九色| 成人三级网址| 亚洲日本一区二区三区在线不卡| 青青草国产精品视频| 可骚可骚的黄视频网站| 亚洲一品av免费观看| 欧洲女同同性吃奶| 福利视频在线| 久久精品凹凸全集| 国产精品久久久免费观看| 91手机视频在线观看| 欧美 日韩 国产 成人 在线| 欧美激情视频一区二区三区在线播放| 久久久久久久久久久久久久久久久久av| 91精品人妻一区二区三区果冻| 激情久久久久久| 国产精品吊钟奶在线| 蜜桃av中文字幕| 性猛交富婆╳xxx乱大交一| 视频一区二区三区国产| 欧美少妇精品| 999精彩视频| 日本精品一区二区三区在线播放视频| 亚洲第一黄色片| 欧美色图久久| 亚洲视频在线播放免费| 厕沟全景美女厕沟精品| 亚洲动漫在线观看| 久久国产露脸精品国产| 欧美三级视频在线播放| 久久99久久久久久久久久久| 国产喷白浆一区二区三区| 欧美日韩一区久久| 91桃色在线观看| 亚洲国产精品热久久| 国产精品成人**免费视频| 波多野结衣av在线播放| 亚洲黄色精品视频| 久久成人羞羞网站| 亚洲国产精品久久不卡毛片| 国产在线精品一区二区不卡了| 香蕉成人啪国产精品视频综合网| 亚洲每日在线| 精品极品在线| 日本成人在线免费观看| 久久精品男人的天堂| 欧美综合一区| 麻豆久久久9性大片| 成人3d动漫网站| 成人性生交大片免费观看网站| 欧美巨乳在线观看| 人人妻人人添人人爽欧美一区| 国产日韩欧美高清在线| 欧美一区二区高清| 免费av中文字幕| 全部孕妇毛片丰满孕妇孕交| 亚洲午夜激情| 国产鲁鲁视频在线观看免费| 午夜欧美精品久久久久久久| 五月激情综合婷婷| 欧美日韩国产v| 日本午夜在线视频| 日本jizzcom| 在线看片福利| 国产精品一区二区黑丝| 免费xxxxx网站中文字幕| 欧美一区二区三区在线| 一本久中文高清| 日韩**中文字幕毛片| 人人做人人爽人人爱| 26uuu成人网一区二区三区| 欧美一区二区三区另类| 日韩中字在线观看| mm1313亚洲国产精品美女| 欧美成va人片在线观看| 7777kkk亚洲综合欧美网站| 日韩av免费在线播放| 色婷婷色综合| 国产又粗又猛又爽| 精品一区二区在线观看视频| 国产精品99久久久久久动医院| 国产精品进线69影院| 亚洲成人网在线播放| 欧美日韩激情一区二区三区| 秋霞在线观看一区二区三区| 蜜桃精品视频在线观看| av第一福利大全导航| 国产小视频在线高清播放| 欧美性猛交xxxx乱大交| 免费黄色电影在线观看| 亚洲桃花岛网站| 神马久久久久久久久| 国产精品夜夜夜爽张柏芝| 96久久精品| 日韩免费精品视频| 久热精品在线视频| 日韩经典第一页| 欧美特级xxxxbbbb毛片| 超碰国产一区| 国产男女无套免费网站| 欧美精品韩国精品| 国产成人精品电影| 中文字幕国产一区二区| 成人性色生活片免费看爆迷你毛片| 久久久精品中文字幕| 一区二区三区视频观看| 欧美精品一区二区久久婷婷| 欧美性狂猛xxxxxbbbbb| 免费国产精品视频| 久久美女艺术照精彩视频福利播放| 国产精品久线观看视频| 国语对白永久免费| 91蜜桃在线观看| 欧美一级免费视频| 欧美高清在线播放| 亚洲区 欧美区| 男男做性免费视频网| 免费看的黄色录像| 国产精品亚洲аv天堂网| 亚洲欧美一区二区久久| 久久99久久久精品欧美| 欧美三级又粗又硬| 天天插天天操天天射| 日韩一区二区视频在线观看| 白浆爆出在线观看| 欧美亚洲另类制服自拍| 97国产在线视频| 萌白酱视频在线| 久久青草福利网站| 国产精品视频精品视频| 97久久超碰国产精品| 久久视频免费在线观看| 久久丝袜美腿综合| 91午夜理伦私人影院| 欧美美女视频在线观看| 日韩色级片先锋影音| 精品1卡二卡三卡四卡老狼| 久久婷婷中文字幕| 欧美精品电影免费在线观看| 欧美成人免费在线视频| 久久久久久久久99精品| 中文字幕在线视频一区| 五月天婷婷在线观看| 欧美日本乱大交xxxxx| 欧美一卡2卡3卡4卡| 日本久久高清视频| 久久99性xxx老妇胖精品| 四虎成人精品在永久免费| 国产精品国产三级国产在线观看| 精品播放一区二区| 亚洲久久久久久久| 国产精品综合久久久| 久久久免费看| 欧美日韩一区二区三区四区不卡| 国精一区二区| 国产在线观看精品一区| 91色p视频在线| 99精品在免费线中文字幕网站一区| 忘忧草精品久久久久久久高清| 久久伊人亚洲| 免费网站观看www在线观| 欧美不卡1区2区3区| 亚洲卡一卡二| 亚洲一区二区三区加勒比| 在线视频免费在线观看一区二区| 性色av一区二区三区免费| 国产精品福利网站| 日韩一级精品视频在线观看| 色噜噜噜噜噜噜| xxx在线免费观看| 中文字幕乱码免费| 天天爽人人爽夜夜爽| 8888四色奇米在线观看| 欧美日韩性生活视频| 久久久久久久久久久妇女| 久久免费国产精品1| 在线观看视频一区| 久久久av网站| 亲爱的老师9免费观看全集电视剧| 伊人色综合一区二区三区影院视频| 成人毛片100部免费看| 午夜在线视频观看日韩17c| 久久久国产精品不卡| 亚洲精品中文字幕女同| 黄色网址视频在线观看| 亚洲电影免费观看高清| 97欧美精品一区二区三区| 亚洲第一av色| 国产成人啪免费观看软件| 日韩免费中文专区| 午夜福利123| 国产综合av一区二区三区| 日本欧美三级| 亚洲制服丝袜一区| 男人天堂手机在线视频| 亚洲欧美在线磁力| 处破女av一区二区| 青青视频免费在线观看| 国产精品久久久久一区二区| 国产精品视频123| 日韩欧美国产三级电影视频| 成人动漫一区二区| 国产黄色片av| 精品国产一区二区三区久久狼5月| 国产美女主播一区| 欧美亚洲激情| 九九热视频精品| 人人妻人人澡人人爽人人精品| 99爱视频在线| 久久久久国产精品厨房| 精品激情国产视频| 国产精品电影一区二区三区| 黄色大片免费看| 亚洲xxxx做受欧美| 成人3d动漫一区二区三区| 中文字幕第20页| 国产亚洲一卡2卡3卡4卡新区| 超级污的网站| 欧美一区二区三区在线电影| 久久亚洲精精品中文字幕早川悠里| 在线观看精品国产视频| www.爱爱.com|