最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ThinkPHP內置jsonRPC的缺陷分析

 更新時間:2014年12月18日 11:40:49   投稿:shichen2014  
這篇文章主要介紹了ThinkPHP內置jsonRPC的缺陷,以實例形式詳細分析了ThinkPHP內置jsonRPC校驗的缺陷與解決方法,具有一定的參考借鑒價值,需要的朋友可以參考下

本文較為詳細的分析了ThinkPHP內置jsonRPC的缺陷。分享給大家供大家參考。具體分析如下:

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

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

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

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

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

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

復制代碼 代碼如下:
$result = @call_user_func_array(array($object,$request['method']),$request['params'])

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

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

復制代碼 代碼如下:
if (is_array($request['params'])) {
      $request['params'] = array_values($request['params']);
} else {
      $request['params'] = array($request['params']);
}

這樣就完美解決了問題.

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

相關文章

  • PHP守護進程化在C和PHP環(huán)境下的實現

    PHP守護進程化在C和PHP環(huán)境下的實現

    這篇文章主要介紹了PHP守護進程化的實現的方法以及原理過程,以及在C環(huán)境和PHP環(huán)境下實現的代碼,喜歡的朋友收藏一下。
    2017-11-11
  • ThinkPHP實現一鍵清除緩存方法

    ThinkPHP實現一鍵清除緩存方法

    這篇文章主要介紹了ThinkPHP實現一鍵清除緩存方法,需要的朋友可以參考下
    2014-06-06
  • Laravel框架中VerifyCsrfToken報錯問題的解決

    Laravel框架中VerifyCsrfToken報錯問題的解決

    這篇文章主要給大家介紹了關于Laravel框架中VerifyCsrfToken報錯問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-08-08
  • php微信掃碼支付 php公眾號支付

    php微信掃碼支付 php公眾號支付

    這篇文章主要為大家詳細介紹了php微信掃碼支付,php公眾號支付功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • ThinkPHP結合ajax、Mysql實現的客戶端通信功能代碼示例

    ThinkPHP結合ajax、Mysql實現的客戶端通信功能代碼示例

    這篇文章主要介紹了ThinkPHP結合ajax、Mysql實現的客戶端通信功能,需要的朋友可以參考下
    2014-06-06
  • ThinkPHP訪問不存在的模塊跳轉到404頁面的方法

    ThinkPHP訪問不存在的模塊跳轉到404頁面的方法

    這篇文章主要介紹了ThinkPHP訪問不存在的模塊跳轉到404頁面的方法,需要的朋友可以參考下
    2014-06-06
  • PHP設計模式之單例模式入門與應用詳解

    PHP設計模式之單例模式入門與應用詳解

    這篇文章主要介紹了PHP設計模式之單例模式入門與應用,結合實例形式詳細分析了PHP單例模式的具體概念、原理、使用方法及相關操作注意事項,需要的朋友可以參考下
    2019-12-12
  • laravel批量生成假數據的方法

    laravel批量生成假數據的方法

    今天小編就為大家分享一篇laravel批量生成假數據的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • PHP語法自動檢查的Vim插件

    PHP語法自動檢查的Vim插件

    Vim是從 vi 發(fā)展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。和Emacs并列成為類Unix系統用戶最喜歡的編輯器。
    2014-08-08
  • PHP的mysqli_ssl_set()函數講解

    PHP的mysqli_ssl_set()函數講解

    今天小編就為大家分享一篇關于PHP的mysqli_ssl_set()函數講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論

谷城县| 白河县| 通渭县| 武城县| 闻喜县| 淮安市| 宁都县| 柳州市| 天柱县| 海原县| 都安| 水富县| 启东市| 黑河市| 许昌县| 泰安市| 德惠市| 泾川县| 高州市| 舟山市| 天长市| 称多县| 湖北省| 巴林左旗| 通州市| 庆城县| 肇源县| 眉山市| 河间市| 瑞昌市| 玛纳斯县| 西华县| 定安县| 永年县| 陵川县| 南昌县| 南宁市| 陵水| 勃利县| 舞阳县| 鄄城县|