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

首頁 > 編程 > PHP > 正文

php基于curl擴展制作跨平臺的restfule 接口

2020-03-22 19:03:01
字體:
來源:轉載
供稿:網友
* html' target='_blank'>構造函數, 獲取client 請求的方式,以及傳輸的數據 * @param object 可以自定義傳入的對象 public function __construct() //首先對客戶端的請求進行驗證 $this- authorization(); $this- method = strtolower($_SERVER['REQUEST_METHOD']); //所有的請求都是pathinfo模式 $pathinfo = $_SERVER['PATH_INFO']; //將pathinfo數據信息映射為實際請求方法 $this- getResourse($pathinfo); //獲取傳輸的具體參數 $this- getData(); //執行響應 $this- doResponse(); * 根據不同的請求方式,獲取數據 * @return [type] private function doResponse(){ switch ($this- method) { case 'get': $this- _get(); break; case 'post': $this- _post(); break; case 'delete': $this- _delete(); break; case 'put': $this- _put(); break; default: $this- _get(); break; // 將pathinfo數據信息映射為實際請求方法 private function getResourse($pathinfo){ * 將pathinfo數據信息映射為實際請求方法 * GET /users: 逐頁列出所有用戶; * POST /users: 創建一個新用戶; * GET /users/123: 返回用戶為123的詳細信息; * PUT /users/123: 更新用戶123; * DELETE /users/123: 刪除用戶123; * 根據以上規則,將pathinfo第一個參數映射為需要操作的數據表, * 第二個參數映射為操作的id $info = explode('/', ltrim($pathinfo, '/')); list($this- resourse, $this- resourseId) = $info; * 驗證請求 private function authorization(){ $token = $_SERVER['HTTP_CLIENT_TOKEN']; $authorization = md5(substr(md5($token), 8, 24).$token); if($authorization != $_SERVER['HTTP_CLIENT_CODE']){ //驗證失敗,輸出錯誤信息給客戶端 $this- outPut($status = 1); * [getData 獲取傳送的參數信息] * @param [type] $pad [description] * @return [type] [description] private function getData(){ //所有的參數都是get傳參 $this- param = $_GET; * 獲取資源操作 * @return [type] [description] protected function _get(){ //邏輯代碼根據自己實際項目需要實現 * 新增資源操作 * @return [type] [description] protected function _post(){ //邏輯代碼根據自己實際項目需要實現 * 刪除資源操作 * @return [type] [description] protected function _delete(){ //邏輯代碼根據自己實際項目需要實現 * 更新資源操作 * @return [type] [description] protected function _put(){ //邏輯代碼根據自己實際項目需要實現 * 出入服務端返回的數據信息 json格式 public function outPut($stat, $data=array()){ $status = array( //0 狀態表示請求成功 0 = array( 'code' = 1, 'info' = '請求成功', 'data' = $data //驗證失敗 1 = array( 'code' = 0, 'info' = '請求不合法' try{ if(!in_array($stat, array_keys($status))){ throw new Exception('輸入的狀態碼不合法'); }else{ echo json_encode($status[$stat]); }catch (Exception $e){ die($e- getMessage());}ApiClient.php * Created by PhpStorm. * User: anziguoer@sina.com * Date: 2015/4/29 * Time: 12:36 * link: http://www.ruanyifeng.com/blog/2014/05/restful_api.html [restful設計指南]/*** * * * * * * * * * * * * * * * * * * * * * * * * * ***/ * 定義路由的請求方式 * * $url_model=0 * * 采用傳統的URL參數模式 * * http://serverName/appName/ m=module&a=action&id=1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PATHINFO模式(默認模式) * * 設置url_model 為1 * * http://serverName/appName/module/action/id/1/ * ** * * * * * * * * * * * * * * * * * * * * * * * * * * **class restClient //請求的token const token='yangyulong'; //請求url private $url; //請求的類型 private $requestType; //請求的數據 private $data; //curl實例 private $curl; public $status; private $headers = array(); * [__construct 構造方法, 初始化數據] * @param [type] $url 請求的服務器地址 * @param [type] $requestType 發送請求的方法 * @param [type] $data 發送的數據 * @param integer $url_model 路由請求方式 public function __construct($url, $data = array(), $requestType = 'get') { //url是必須要傳的,并且是符合PATHINFO模式的路徑 if (!$url) { return false; $this- requestType = strtolower($requestType); $paramUrl = ''; // PATHINFO模式 if (!empty($data)) { foreach ($data as $key = $value) { $paramUrl.= $key . '=' . $value.'&'; $url = $url .' '. $paramUrl; //初始化類中的數據 $this- url = $url; $this- data = $data; try{ if(!$this- curl = curl_init()){ throw new Exception('curl初始化錯誤:'); }catch (Exception $e){ echo ' pre print_r($e- getMessage()); echo ' /pre curl_setopt($this- curl, CURLOPT_URL, $this- url); curl_setopt($this- curl, CURLOPT_RETURNTRANSFER, 1); * [_post 設置get請求的參數] * @return [type] [description] public function _get() { * [_post 設置post請求的參數] * post 新增資源 * @return [type] [description] public function _post() { curl_setopt($this- curl, CURLOPT_POST, 1); curl_setopt($this- curl, CURLOPT_POSTFIELDS, $this- data); * [_put 設置put請求] * put 更新資源 * @return [type] [description] public function _put() { curl_setopt($this- curl, CURLOPT_CUSTOMREQUEST, 'PUT'); * [_delete 刪除資源] * delete 刪除資源 * @return [type] [description] public function _delete() { curl_setopt($this- curl, CURLOPT_CUSTOMREQUEST, 'DELETE'); * [doRequest 執行發送請求] * @return [type] [description] public function doRequest() { //發送給服務端驗證信息 if((null !== self::token) && self::token){ $this- headers = array( 'Client_Token: '.self::token, 'Client_Code: '.$this- setAuthorization() //發送頭部信息 $this- setHeader(); //發送請求方式 switch ($this- requestType) { case 'post': $this- _post(); break; case 'put': $this- _put(); break; case 'delete': $this- _delete(); break; default: curl_setopt($this- curl, CURLOPT_HTTPGET, TRUE); break; //執行curl請求 $info = curl_exec($this- curl); //獲取curl執行狀態信息 $this- status = $this- getInfo(); return $info; * 設置發送的頭部信息 private function setHeader(){ curl_setopt($this- curl, CURLOPT_HTTPHEADER, $this- headers); * 生成授權碼 * @return string 授權碼 private function setAuthorization(){ $authorization = md5(substr(md5(self::token), 8, 24).self::token); return $authorization; * 獲取curl中的狀態信息 public function getInfo(){ return curl_getinfo($this- curl); * 關閉curl連接 public function __destruct(){ curl_close($this- curl);}

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区在线观看视频| 成人a在线视频| 国产精品福利片| 久久久久久一区二区三区| 久久久久久国产精品美女| 成人性教育视频在线观看| 九九热这里只有精品免费看| 欧美日本在线视频中文字字幕| 亚洲成年人在线| 国产亚洲精品美女久久久| 色中色综合影院手机版在线观看| 国产成人亚洲综合| 欧美日韩国产中文精品字幕自在自线| 亚洲最新中文字幕| 久久99国产精品久久久久久久久| 黑人狂躁日本妞一区二区三区| 欧美激情视频网址| 国产亚洲视频中文字幕视频| 97色在线观看| 欧美性xxxxxxxxx| 国产精品igao视频| 热草久综合在线| 国产69精品久久久久9999| 日韩av电影手机在线观看| 日韩av免费在线| 中文字幕亚洲第一| 国产自摸综合网| 另类天堂视频在线观看| 日韩欧美在线国产| 国产精品99蜜臀久久不卡二区| 国产精品高精视频免费| 国产精品h片在线播放| 欧美日韩亚洲一区二区| 日韩国产精品一区| 亚洲性av在线| 91欧美精品午夜性色福利在线| 黑人极品videos精品欧美裸| 午夜精品久久久99热福利| 国产激情综合五月久久| 亚洲国产精品va在线看黑人| 日韩电影中文 亚洲精品乱码| 国产精品夫妻激情| 国内久久久精品| 久久亚洲春色中文字幕| 久久这里只有精品99| 日韩成人在线视频| 国产欧美va欧美va香蕉在| 国产午夜精品美女视频明星a级| 国产一区二区三区在线看| 成人两性免费视频| 欧美成人精品激情在线观看| 久久久国产影院| 国产精品久久久久久久久久99| 91九色精品视频| 国产精品成av人在线视午夜片| 亚洲精品不卡在线| 精品自拍视频在线观看| 97精品视频在线| 欧美精品激情在线观看| 黑人巨大精品欧美一区二区免费| 日本乱人伦a精品| 精品福利在线看| 成人免费黄色网| 亚洲国产精品悠悠久久琪琪| 亚洲视频专区在线| 欧美亚洲伦理www| 国产精品久久久久久久久久三级| 欧美日韩国产成人高清视频| 国产一区二区三区高清在线观看| 日韩在线免费视频观看| 欧美亚洲另类在线| 久久亚洲综合国产精品99麻豆精品福利| 欧美日韩亚洲系列| 久久久久99精品久久久久| 国产精品免费久久久久影院| 色99之美女主播在线视频| 欧美亚洲视频一区二区| 成人激情视频在线| 最新亚洲国产精品| 欧美亚洲另类激情另类| 国产成人高清激情视频在线观看| 成人激情黄色网| 国产精品久久久久久久久久小说| 亚洲视频在线观看免费| 亚洲欧美激情另类校园| 国产亚洲人成网站在线观看| 在线电影av不卡网址| 久久久久久久国产| 国产精品欧美日韩久久| 国产成人精品国内自产拍免费看| 日韩免费av片在线观看| 国产精品av在线播放| 日韩av在线不卡| 日韩久久精品电影| 欧美日韩国产va另类| 欧美激情喷水视频| 国产精品老女人视频| 日韩国产高清污视频在线观看| 8090成年在线看片午夜| 亚洲香蕉成视频在线观看| 在线国产精品播放| 久久伊人免费视频| 在线观看成人黄色| 日韩一区二区三区xxxx| 国产丝袜一区视频在线观看| 亚洲美女性生活视频| 欧美日产国产成人免费图片| 中文字幕亚洲国产| 成人精品网站在线观看| 亚洲精品国产精品自产a区红杏吧| 亚洲国产精品人久久电影| 国产精品日韩精品| 精品国产31久久久久久| 亚洲精品视频网上网址在线观看| 久久视频在线观看免费| 欧美高清电影在线看| 青草青草久热精品视频在线网站| 精品人伦一区二区三区蜜桃免费| 久久久久久久网站| 国产精品久久久久久久久借妻| 欧美日本在线视频中文字字幕| 尤物九九久久国产精品的分类| 成人做爰www免费看视频网站| 精品女同一区二区三区在线播放| 国内精品国产三级国产在线专| 一区二区福利视频| 久久精品国产亚洲7777| 久久久亚洲福利精品午夜| 久久九九全国免费精品观看| 国产精品福利小视频| 午夜剧场成人观在线视频免费观看| 亚洲免费伊人电影在线观看av| 久久综合久久88| 国产香蕉精品视频一区二区三区| 国产suv精品一区二区三区88区| 国产精品亚洲激情| 精品国产乱码久久久久久天美| 亚洲天堂成人在线视频| 国产深夜精品福利| 亚洲精品综合精品自拍| 国产免费一区二区三区在线观看| 在线成人一区二区| 欧美一区二区三区艳史| 97碰在线观看| 国产精品永久免费在线| 欧美国产中文字幕| 亚洲嫩模很污视频| 日本一区二区在线免费播放| 成人激情视频在线| 亚洲欧美一区二区三区在线| 亚洲第一区第一页| 热re91久久精品国99热蜜臀| 一区二区三区国产在线观看| 日韩av成人在线观看| 亚洲国产精品国自产拍av秋霞| 亚洲国产精品va在线看黑人动漫| 国产一区二区三区在线看| 亚洲人成五月天| 精品久久久香蕉免费精品视频| 青草青草久热精品视频在线观看| 欧美性xxxxx| 欧洲永久精品大片ww免费漫画| 国产91精品网站| 亚洲国产另类 国产精品国产免费|