ThinkPHP内置jsonRPC的缺陷分析
本文较为详细的分析了ThinkPHP内置jsonRPC的缺陷。分享给大家供大家参考。具体分析如下:
最近在开发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),发现了这样一行代码:
注意到这个函数没,call_user_func_array,array,点进去看参数说明,果然,$request['params']必须是数组类型,不是数组死活不认,更可恨的是,thinkphp没有对这个参数进行严格的校验,于是都不知道怎么错的.
知道了这个原因就好办了,前面加上校验.
$request['params'] = array_values($request['params']);
} else {
$request['params'] = array($request['params']);
}
这样就完美解决了问题.
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
- ThinkPHP通过AJAX返回JSON的两种实现方法
- thinkphp中ajax与php响应过程详解
- ThinkPHP实现ajax仿官网搜索功能实例
- ThinkPHP处理Ajax返回的方法
- ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
- ThinkPHP中ajax使用实例教程
- ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
- ThinkPHP3.1新特性之对Ajax的支持更加完善
- ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
- 利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
- ThinkPHP中使用ajax接收json数据的方法
- ThinkPHP内置jsonRPC的缺陷分析
- 缺陷漏测分析:测试过程改进
- 软件缺陷分析
- QQ网站登录的RSA加密传输缺陷分析
- 测试缺陷务实分析
- WPF中DataTemplate基本原理与缺陷分析
- 缺陷分析和缺陷预防技术
- 主流报表引擎普遍缺陷问题分析
- 常用软件缺陷预防技术和缺陷分析技术
- 测试缺陷分析务实篇(转载)
- 加强测试度量工作和缺陷分析工作,不断的改进测试
- 最全,最强的软件测试资料汇总 (性能测试,性能调优,功能测试,自动化测试,测试管理,测试工具,测试用例设计,缺陷分析预防,前沿测试技术...)
- 传统防病毒技术缺陷分析
- QQ网站登录的RSA加密传输缺陷分析
- 最全,最强的软件测试资料汇总 (性能测试,性能调优,功能测试,自动化测试,测试管理,测试工具,测试用例设计,缺陷分析预防,前沿测试技术...)
- 加强测试度量工作和缺陷分析工作,不断的改进测试
- Java代码缺陷自动分析工具介绍
- 河南移动网络客服系统验证码的缺陷分析和利用!
- 从CMMI角度分析公司管理缺陷
- 利用Oracle内置分析函数进行高效统计汇总(2)