PC1.PC http://www.bitscn.com/pdb/php/201411/402... 21Yii2 PCPHPApi 1url2file_get_contents()url3JSON4http://www.jb51.net/article/20705.htm //PHPURL $url='http://api.xx"/> PC1.PC http://www.bitscn.com/pdb/php/201411/402... 21Yii2 PCPHPApi 1url2file_get_contents()url3JSON4http://www.jb51.net/article/20705.htm //PHPURL $url='http://api.xx">
data-id="1190000004902725">
序言
好习惯造就好人生,开发中要善于总结。今天我继续给大家分享一些干货,关注我的粉丝们有福利了哈。下边是我在PC端调用接口整理出来的一些笔记,以及提醒大家需要注意的事项!
原因分析
1.首先我说一下为啥会在PC端调用接口获取数据吧!
给个链接给你们:http://www.bitscn.com/pdb/php/201411/402...。看完这篇文章之后估计你就明白我的用意了。
2、把相关的资料整合,不但利于信息的获取还能作为前车之鉴,前人栽树后人乘凉懂吧?哈哈,我是博爱党。
笔记整理
1、Yii2 PC端调用接口获取数据的三种方式
PHP调用Api接口的方法
<code> 1、直接在方法里引用接口的url。 2、通过file_get_contents()函数获取url的数据。 3、把获取到的JSON格式数据进行反转。(可选) 4、参考网址:http://www.jb51.net/article/20705.htm //PHP远程调用URL 例: $url='http://api.xxx.com/v1/departments?id=list&company_id=1'; $data=file_get_contents($url); $data_1 = json_decode($data,true); //JSON反转</code>
Ajax调用Api接口的方法
<code> 例: $.ajax({ type:"POST", url: //你的请求程序页面随便啦(接口地址) async:false,//同步:意思是当有返回值以后才会进行后面的js程序。 data://请求需要发送的处理数据 success:function(msg){ if (msg) {//根据返回值进行跳转 window.location.href = '你的跳转的目标地址(页面地址)'; } }</code>
JQ调用Api接口的方法
<code>例: <script type="text/javascript" src="/apihandonesvn/frontend/web/assets/68738eee/jquery-1.11.2.min.js"></script> <script type="text/javascript"> //1、GET方式 $.get('http://api.XXX.com/v1/departments?grade=1',function(data){ // console.log(data);//输出内容,类似alert() $('#content').html(data); }); //2、POST方式 $.post('http://api.XXX.com/v1/departments?grade=1',{a:1,b:2,c:3},function(data){ $('#content').html(JSON.stringify(data)); }); </script></code>
补充:使用后两种方法的话,在接口对应控制器的所有方法顶部加上下面代码
<code> public function behaviors() { return ArrayHelper::merge([ [ 'class' => Cors::className(), 'cors' => [ 'Origin' => ['http://www.ceshi.com'],//PC端的Url 'Access-Control-Request-Method' => ['GET','POST','PUT','DELETE', 'HEAD', 'OPTIONS'], ], 'actions' => [ 'index' => [ 'Access-Control-Allow-Credentials' => true, ] ] ], ], parent::behaviors()); }</code>
以上三种PC端调用接口的方式,本人亲测过都可行,你们各取所爱。
2、PC端调用接口,接口怎么获取uid的问题?
此时接口就不可用Yii自带的Yii:$app->user->id获取了,因为接口也不可能登录。接口要获取当前登录者的uid可以通过PC端传个access-token,然后在接口用get获取去查出uid,解决。
接口获取其它参数的时候也可同样仿造此方法。
3、报:PHP Warning – yii\base\ErrorException
Invalid argument supplied for foreach()错误的问题及解决方法
这个错误是循环空数据造成的,只要在数据循环前得加个判断,保证数据存在才能循环就解决了。这虽然不是什么特别难解决的错误,但是细节问题我们还得注意,细节决定成败。
提醒注意
1、PC端调用接口进行本地测试,本地接口地址最好别和网上一致,因为这样它会先走本地接口,要是遇到本地接口好的话,不好找原因。
相关资料
PHP(CURL)POST数据调用API简单示例:http://eyexiaobo.iteye.com/blog/1100712
以上就介绍了PC端调用接口笔记整理以及注意事项,包括了注意事项,接口方面的内容,希望对PHP教程有兴趣的朋友有所帮助。