麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

thinkphp內置jsonRPC的缺陷

2024-09-09 15:20:16
字體:
來源:轉載
供稿:網友

最近,在開發ios應用啊,要開發ios應用,當然要用到服務器啊,用服務器必然要選用遠程調用協議啊,因為之前本人一直都是用php開發的,所以選用thinkphp當框架的apache服務器.

至于遠程調用協議,經過思考,還是選用jsonRPC吧,比較簡單方便,翻了一下thinkphp(是3.2版本)的手冊,發現thinkphp還是支持jsonRPC的,這不錯啊,不用自己去寫了(當然自己寫寫也不是什么麻煩的事).

簡單地,用thinkphp做客戶端,去調用thinkphp服務器端的接口,好用.

接下來是android端,隨便取網上找了個包(android-json-rpc.jar),調用一下接口,誒!也好用,進展很順利.

接下來就換ios了,取github上找了個objc-JSONRpc的項目,拿來調用接口,不好用,很正常,可能是我找的項目有問題,于是我又換了一個Demiurgic-JSON-RPC,還是不好用,我開始對程序產生了懷疑,因為web端和android端調用都沒問題,所以我把焦點定位到了我的ios程序,我的天,花了我半天時間,我硬是沒找出問題,我還用ios端調用了其他人提供的jsp客戶端的接口,也沒問題啊.

后來,我開始看thinkphp內置的jsonRPC模塊,經過不停的調試(各種調試,又刪代碼,又Dbug),發現了這樣一行代碼:

$result = @call_user_func_array(array($object,$request['method']),$request['params'])

注意到這個函數沒,call_user_func_array,array,點進去看參數說明,果然,$request['params']必須是數組類型,不是數組死活不認,更可恨的是,thinkphp沒有對這個參數進行嚴格的校驗,于是都不知道怎么錯的.

知道了這個原因就好辦了,前面加上校驗.

  1. if (is_array($request['params'])) { 
  2.       $request['params'] = array_values($request['params']); 
  3. else { //開源軟件:Vevb.com 
  4.       $request['params'] = array($request['params']); 

這樣就完美解決了問題.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产激情视频在线 | 91一区二区三区久久久久国产乱 | 精品亚洲一区二区三区 | 成人免费激情视频 | 中午日产幕无线码1区 | 欧美1区2区在线观看 | 逼特逼视频在线观看 | 久久亚洲成人 | 毛片免费视频观看 | 91美女啪啪| 久草成人在线观看 | 美女黄影院 | 国产一区二区三区四 | 水卜樱一区二区av | 国产成人自拍av | 福利一区二区三区视频在线观看 | 亚洲一级网站 | 看免费黄色大片 | 欧美a v在线 | 精品一区二区三区日本 | 黄在线免费 | 日韩激情| a视频网站| 亚洲午夜1000理论片aa | 国产精品av久久久久久无 | 欧美一级黄色免费 | 免费观看一区二区三区视频 | 久久久久久亚洲国产精品 | 黄色片视频观看 | 国产亚洲精彩视频 | 天天操很很操 | 国产精品一区二区视频 | 欧美激情视频一区二区免费 | 一级做a爰片性色毛片2021 | 91麻豆精品国产91久久久点播时间 | 久久国产精品影视 | 欧美特黄一级高清免费的香蕉 | 亚洲精品 在线播放 | 鲁丝片一区二区三区免费入口 | 日日操夜夜透 | 精品无码一区在线观看 |