27
18911184380
当前位置:首页 > 资讯 > 建站知识

用PHP调用JSON接口以及编写接口的方法是?

2018-06-25 酷站科技
数据信息连接、网址插口...在开发网站的全过程中常常会谈及那样的难题?说白了的网址插口是网站程序中2个单独的服务器虚拟机信息交换的共享资源界限。
1、集群服务器的共享资源界限
简易表述,一个网站实际上便是一个网络服务器,公司网站制作所展现的新闻报道、数据信息、信息内容都存有自身的网络服务器中。
可是当2个网址,也就是两部集群服务器,必须传输数据,或是共享资源一些数据信息时,就必须一条安全通道或者一种方式 ,让两部服务器虚拟机数据信息互动。
图上的內容,便是大家常说的共享资源界限,也就是插口內容(插口坐落于展现內容的A网络服务器中,出示浏览安全通道和方式 )
较为基本的仅有二种网络服务器插口方式,httpservice和webservice,传送数据的文件格式有json、xml、vdf等
加密算法有sha1、sha256、md5、base64带密匙验签 
 
2、应用性强的案例插口
(1)、根据oauth2.0的单点登陆
如果你的网址,必须QQ、手机微信等第三方账户的登陆作用时,怎样认证这一客户在QQ和微信中是有账户的呢?
最先,QQ和微信是不容易将客户的登录名和登陆密码发过来的网址的,它是十分不安全的。
因此,彼此必须认证一些相互信息内容,这就是签字。
举例子一下,手机微信的信息解决。
签字方式
 
(2)、jquery的ajax跨域传输数据
如果你主打产品的2个网址,必须一个相通的数据信息开展同用时,就必须一种方法开展浏览(这类数据信息一般能够 对外开放公布播放视频,也全是必须发布并让别的用户能浏览的信息内容),如果你必须跨域的情况下,那么就必须应用网络服务器語言开展获得(php、java等)。假如你還是坚持不懈要用javascript,感觉那样获得速率上面有优点,那请应用jsonp(还记得jsonp的文件格式和json是不一样的,前边是有function的)。启用插口必须有一个插口的详细地址,大家用网上免费的天气预告插口,仅仅为了更好地学习培训插口的应用,并不确保精确。现阶段,精确的插口都早已收费标准了。我寻找的完全免费详细地址是:http://www.weather.com.cn/data/sk/101010100.html 。然大家来用这一详细地址来进行了解一下吧。

PHP启用JSON插口,有下列五个流程:

第一步、申明网页页面编号,UTF-8:
header("Content-type: text/html; charset=utf-8");
第二步、根据curl回到json字符串数组:
根据curl涵数获得回到json字符串数组
第三步、把回到的字符串数组转换为php自变量:
第四步、把字符串数组转换为数字能量数组:
采用数字能量数组转换涵数:
 
启用字符串数组转涵数。
下列一部分是检测輸出:
前台接待显示信息結果:
 
第五步、启用数字能量数组原素:
根据这一二维数组,获得相对的信息内容。
前台接待显示信息:
 
小结:
从上边的事例中能够 看得出,一个简易的插口,实际上启用起來還是很便捷。根据上边的五个流程,就可以完成。上边的事例中有两个关键,第一个便是crul涵数的启用;第二个便是json字符串数组转换为数字能量数组。

下边详细介绍怎样在PHP中撰写插口

一、先简易回应2个难题:

1、PHP 能够 开发设计手机客户端?

答:不能,由于PHP是开发语言,是承担进行B/S构架或C/S构架的S一部分,即:服务器端的开发设计。(别去担心GTK、WinBinder)

2、为何挑选PHP 做为开发设计服务器端的优选?

答:混合开发(能够 运作在UNIX、Linux、WINDOWS、Mac OS下)、低耗(PHP耗费非常少的服务器资源)、运作高效率(相对来说)、MySQL的完美拍档,自身是完全免费开源系统的。

二、怎么使用PHP开发设计API(ApplicationProgramming Interface,运用代码编程插口)呢?

做了API 的人应当掌握,实际上开发设计API 比开发设计WEB 更简约,但很有可能逻辑性更繁杂,由于API 实际上便是数据信息輸出,无需展现网页页面,因此也就不会有MVC(API 仅有M 和C),

1、和WEB 开发设计一样,最先必须一些有关的主要参数,这种主要参数,都是会由手机客户端传过来,或许是GET 或许是POST,这一必须开发设计精英团队彼此之间承诺好,或是制订统一标准。

2、拥有主要参数,依据运用要求,进行数据处理方法,比如:每日任务进展升级、APP內购、一局比赛终止数据信息递交这些。

3、数据信息逻辑性解决完以后,回到手机客户端所必须采用的有关数据信息,比如:每日任务情况、內购結果、游戏玩家信息内容这些数据信息如何退还给手机客户端?立即輸出的方式,如:JSON、XML、TEXT 这些。

4、手机客户端获得到你回到的数据信息后,在手机客户端当地和客户开展互动。

临时性写的一个简易API 事例:

<?php

$output = array();

$a = @$_GET['a'] ? $_GET['a'] : '';

$uid = @$_GET['uid'] ? $_GET['uid'] : 0;

if (empty($a)) {

$output = array('data'=>NULL, 'info'=>'白狐建网站!', 'code'=>-201);

exit(json_encode($output));

}

//走插口

if ($a == 'get_users') {

//检查用户

if ($uid == 0) {

$output = array('data'=>NULL, 'info'=>'The uid is null!', 'code'=>-401);

exit(json_encode($output));

}

//假定$mysql 是数据库查询

$mysql = array(

10001 => array(

'uid'=>10001,

'vip'=>5,

'nickname' => 'wang',

'email'=>'418808288@qq.com',

'qq'=>418808288,

'gold'=>1500,

'powerplay'=> array('2xp'=>12,'gem'=>12,'bingo'=>5,'keys'=>5,'chest'=>8),

'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),

'ctime'=>13152859989,

'lastLogin'=>13810380242,

'level'=>19,

'exp'=>16758,

),

10002 => array(

'uid'=>10002,

'vip'=>50,

'nickname' => 'dalu',

'email'=>'617896996@qq.com',

'qq'=>NULL,

'gold'=>14320,

'powerplay'=> array('2xp'=>1,'gem'=>120,'bingo'=>51,'keys'=>5,'chest'=>8),

'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),

'ctime'=>13520623857,

'lastLogin'=>15720366940,

'level'=>112,

'exp'=>167588,

),

10003 => array(

'uid' => 10003,

'vip' => 5,

'nickname' => 'hb0317',

'email' => 'hb0317@126.com',

'qq' => NULL,

'gold' => 1541,

'powerplay'=> array('2xp'=>2,'gem'=>112,'bingo'=>4,'keys'=>7,'chest'=>8),

'gems' => array('red'=>13,'green'=>3,'blue'=>9,'yellow'=>7),

'ctime' => 13693231513,

'lastLogin'=> 13910396104,

'level' => 10,

'exp' => 1758,

),

);

$uidArr = array(10001,10002,10003);

if (in_array($uid, $uidArr, true)) {

$output = array('data' => NULL, 'info'=>'The user does not exist!', 'code' => -402);

exit(json_encode($output));

}

//数据库查询

$userInfo = $mysql[$uid];

//輸出数据信息

$output = array(

'data' => array(

'userInfo' => $userInfo,

'isLogin' => true,//是不是初次登录

'unread' => 4,//已读信息总数

'untask' => 3,//没完成每日任务

),

'info' => 'Here is the message which, commonly used in popup window', //消息提醒,手机客户端总会用此做为给弹出窗口信息内容。

'code' => 200, //成功失败的编码,一般全是正数或是负值

);

exit(json_encode($output));

} elseif ($a == 'get_games_result') {

//...

die('您已经调get_games_result 插口!');

} elseif ($a == 'upload_avatars') {

//....

die('您已经调upload_avatars 插口!');

92.}
 

来源于申明:以上内容一部分(包括照片、文本)来自互联网,若有侵权行为,请立即与本网站联络(010-57218159)。
如没特殊注明,文章均为酷站科技原创,转载请注明来自http://www.bjkuzhan.com/jianzhanzhishi/2258.html
联系专业的商务顾问,制定方案,专业设计,一对一咨询及其报价详情
服务热线服务热线 18911184380
联系我们 contact us
18911184380
18911184380 — 海淀营业部
18911184380— 昌平营业部
+

酷站科技为你提供上门/网站策略方案

留下联系方式,我们将会在一个工作日内与你联系

隐私条款信息保护中,请放心填写