亚洲香蕉成人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ā)表
欧美视频第一页| 一区二区在线高清视频| 51精品视频一区二区三区| 综合av色偷偷网| 一女三黑人理论片在线| 亚洲精品一区二区口爆| 精品成人无码一区二区三区| 一区视频免费观看| 日韩成人久久久| 亚洲一区二区三区视频播放| 1769在线观看| 亚洲一区二区日韩| 国产一区在线免费观看| 日本妇女毛茸茸| 蜜臀av在线播放一区二区三区| 91丝袜脚交足在线播放| 日韩av大全| 久久精品九色| 欧美a v在线播放| 九九亚洲精品| 色94色欧美sute亚洲线路一久| 精品国产www| 91久久国产综合久久| 亚洲伦理久久| 性金发美女69hd大尺寸| 久久视频在线播放| 中文字幕日本欧美| 周于希免费高清在线观看| 免费久久久久久| 欧美日韩视频在线一区二区| 97视频在线观看亚洲| 国产在线视频福利| 亚洲娇小xxxx欧美娇小| 99久久精品久久久久久清纯| 狠狠色综合色综合网络| 久久综合色婷婷| 北岛玲heyzo一区二区| 国产亚洲一二三区| 日韩在线激情| 日本精品福利视频| 久久国产综合视频| 欧美疯狂性受xxxxx另类| 91国产成人在线| 久久亚洲国产中v天仙www| 精品国产aⅴ| 欧美精品www| 国产精品男女猛烈高潮激情| 91超碰碰碰碰久久久久久综合| 国产精品自拍视频在线| 99在线视频免费| av在线一区二区三区| 国产一区二区自拍视频| 成人国产一区二区三区精品麻豆| 日日摸天天添天天添破| 日本一道高清一区二区三区| 亚洲aⅴ网站| 先锋影音av资源在线| 欧美成人中文| 99精品欧美一区二区三区小说| 影音先锋人妻啪啪av资源网站| www.激情网.com| 国产成人精品一区二区三区| 91国产美女视频| 91成人短视频在线观看| 中文字幕在线网址| 国产成人免费视频app| 天天干天天色天天干| 69久久久久| 国产精品一区二区久久精品| 国产一区二区三区探花| 久久精品三级视频| 国产精品夜色7777狼人| 亚洲视频在线观看一区二区| 国产精品99导航| 日韩精品影视| 中国动漫在线观看完整版免费| 美女露出粉嫩尿囗让男人桶| 麻豆疯狂做受xxxx高潮视频| 无码人妻黑人中文字幕| 在线观看免费av网| 日本韩国欧美在线观看| 欧美精品成人| 欧美专区在线观看| 久久久久久久久久久久久夜| 操91在线视频| 国产美女视频一区二区| 中国男女全黄大片| 久久精品国产99国产精品| 日本a级片在线播放| 欧美 国产 日本| 精品人妻互换一区二区三区| 翁止熄痒禁伦短文合集免费视频| 91丨九色丨国产丨porny| 亚洲精品乱码久久久久久蜜桃91| 国产免费观看久久| 欧美日韩小视频| 国产视频一区欧美| 成人av在线电影| 午夜精品视频在线观看一区二区| 一区二区三区人妻| 国产精品亚洲欧美在线播放| 久久久一区二区三区不卡| 先锋影音一区二区| 亚洲精品乱码久久久久久久久久久久| 国产福利一区二区在线精品| 天天av综合| 国产精品一区在线观看你懂的| 永久免费在线看片视频| 国产精品chinese在线观看| 亚洲大片精品免费| 欧美第一视频| 伊人久久大香线蕉综合热线| 欧美国产日韩亚洲一区| 精品国产一区二区三区久久久樱花| 黄色片网站免费| 精品日产卡一卡二卡麻豆| 中文字幕天天干| 在线免费观看一区二区| 在线电影一区二区| 国产精品麻豆久久久| 日韩一区二区影院| 岛国在线视频网站| 美女精品自拍一二三四| 亚洲国产一成人久久精品| x99av成人免费| 在线精品国产成人综合| 视频精品一区| 激情六月丁香婷婷| 亚洲h精品动漫在线观看| 一级黄色片毛片| 在线观看美女av| 日本黄色免费视频| 色七七在线观看| 国产喷水吹潮视频www| 好吊色视频一区二区三区| 一区二区三区欧洲区| 欧美日韩一级视频| 99爱精品视频| 精品欧美一区免费观看α√| 久久亚洲AV无码专区成人国产| 性生活视频软件| 女同一区二区| 欧美私模裸体表演在线观看| 在线亚洲美日韩| 国产女女做受ⅹxx高潮| 欧美国产日韩在线观看成人| 91精品国产免费| 草草视频在线一区二区| 久久精品在线观看视频| 手机在线精品视频| 又色又爽又黄无遮挡的免费视频| 久久夜色精品国产欧美乱| 久久精品免费观看| 色呦呦日韩精品| 香蕉人人精品| www欧美xxxx| 亚洲一二三在线观看| 国产一级影视| 国产视频久久久久久久| 99久久国产免费| sqte在线播放| 美女免费视频黄| 国产精品乱码妇女bbbb| 真实国产乱子伦对白视频| 日韩天堂在线观看| 国产一区二区成人久久免费影院| 在线不卡免费视频| 成人亚洲性情网站www在线观看| 国内精品偷拍视频| 性欧美videos精品| 国产精品麻豆欧美日韩ww| 任你操视频在线观看| 国产精品国产亚洲精品看不卡| 日韩一级大片在线观看| 国产乱淫av片免费| 黄色a在线观看| 中文字幕免费精品一区| 神马久久久久久久久久久| 石原莉奈一区二区三区高清在线| 国产一区二区中文字幕免费看| 欧美日韩精品综合| 亚洲欧美国产一区二区三区| 香蕉久久aⅴ一区二区三区| 青青草久久网络| 九九热免费精品视频| 97人妻精品视频一区| 日韩电影在线免费看| 日韩欧美在线字幕| ed2k情侣啪啪91av| 伊人久久一区| 成人av免费观看| 国产精品一区二区免费不卡| 色婷婷**av毛片一区| 久草亚洲一区| 懂色一区二区三区免费观看| jizzjizzjizzjizz日本| 大荫蒂欧美视频另类xxxx| 久久久av毛片精品| 免费高清在线一区| 精品国产亚洲av麻豆| 日韩欧美激情在线| 日韩成人三级| 午夜激情小视频| 刘亦菲国产毛片bd| 亚洲欧洲自拍偷拍| 国产va亚洲va在线va| 波多野结衣在线播放| 欧美精品日韩少妇| 91超碰rencao97精品| 欧美成人免费小视频| 国产无遮挡一区二区三区毛片日本| 妖精视频一区二区三区免费观看| 草民电影神马电影一区二区| 69国产精品成人在线播放| 成人一区二区| 亚洲最大福利视频网| 中日韩黄色大片| 黄色在线观看网站| 亚洲精品丝袜日韩| 娇妻被老王脔到高潮失禁视频| 国产高清在线观看视频| 男人的天堂亚洲在线| 最新在线中文字幕| 先锋影音久久| 日韩av毛片| 一本一道久久综合狠狠老精东影业| 精品视频一区二区在线观看| 国产精品一区二区你懂的| 亚洲一区二区三区观看| 久久久久久久久91| 日本精品在线观看| 992在线观看| 国产在线精品一区二区夜色| 中文字幕求饶的少妇| 欧美日韩中文字幕在线观看| 99久久精品国产色欲| 欧美精品xxxxx| 天堂网在线观看国产精品| 美女被艹视频网站| 91精品高清| 麻豆久久久久久| 日本黄色免费片| 国产精久久久| 男人天堂久久久| 日韩精品一区二区三区在线| 精品卡1卡2卡三卡免费网站| 加勒比日本影视| 亚洲影视在线观看| 亚洲成人激情图| 久久精品播放| 波多野结衣一区二区三区在线观看| 一区二区亚洲| 日本久久黄色| 97超碰人人干| 国产资源精品在线观看| 福利视频大全| 中文字幕一二三| 亚洲精品在线免费播放| 久久精品欧美一区二区| 乡村艳史在线观看| 日本亚洲欧美美色| 免费亚洲精品视频| 国产在线播放一区二区三区| 法国空姐电影在线观看| 精品亚洲porn| 日韩一区二区三区精品| 91香蕉在线视频| 国产成人精品电影| 欧洲s码亚洲m码精品一区| 涩涩视频免费看| 免费在线黄网| 欧美一级片免费在线观看| 日韩成人av免费| 国产校园另类小说区| 亚洲精品国产一区二区精华液| 久久黄色网页| 久久亚洲私人国产精品va媚药| 香蕉久久夜色| 国产三级中文字幕| 丰满人妻一区二区三区无码av| 国产精品 欧美精品| 亚洲男女在线观看| 欧美aaa一级| 日韩精品视频免费播放| av在线app| 中文字幕在线永久在线视频2020| 97超碰在线视| 牛人盗摄一区二区三区视频| 99精品一区二区| 99精品国产99久久久久久白柏| 黄页视频在线免费观看| 精品少妇一区二区三区视频免付费| 国产在线三区| www.久久色.com| 久久在线视频在线| 精品美女视频在线观看免费软件| 99精品在线免费视频| 免费人成黄页网站在线一区二区| 成人午夜网址| www黄色在线| av动漫精品一区二区| 亚洲精华国产| 91免费在线视频网站| 国产在线a视频| 亚洲三级网站| 精品一区二区视频在线观看| 欧美金发大战黑人最粗videos| 亚洲色婷婷综合开心网| 欧美一级视频| 一区二区三区国产好| 牛牛影视一区二区三区免费看| 日韩三级精品| 欧美刺激脚交jootjob| 醉酒壮男gay强迫野外xx| 亚洲91久久| 国产欧美一区二区色老头| 在线理论视频| 久久久久久久久免费| 老师让我她我爽了好久视频| 日韩视频在线一区二区| 久久99久久久欧美国产| 精品av久久久久电影| 亚洲综合成人在线| 欧美日韩国产一级| 成年人免费在线视频| 韩日一区二区三区| 在线播放国产视频| 东京热一区二区三区四区|