利用PHP如何写APP接口详解


Posted in PHP onAugust 23, 2016

搭建PHP环境

由于本人使用的电脑是Mac,因此推荐大家使用MAMP PRO这款软件,不过是收费版,相信不想花钱的大家会有办法搞定的!

MAMP PRO这款软件是集成环境软件,已经有apache、mysql、php了,具备运行解析PHP的环境了!

如果不想使用集成环境,可以自己搭建。Mac自带了apache和PHP环境的,只需要稍加配置一下就可以使用了,然后再安装一下mysql就可以了!

大家可以看一下简单版本配置:Mac配置PHP环境 这篇文章。

启动服务器

这里是以MAMP PRO软件为例,如何启动服务器。如下图,我们假设服务地址为 www.api.com ,然后将项目目录与这个服务地址关联起来,看图中右下角圈圈部分:

利用PHP如何写APP接口详解

环境启动后,就可以在浏览器中直接输入 www.api.com 运行起来了!

开始GET接口

我们的空项目在首次运行后,会自动生成 index.php 这个文件,我们删除里面的内容,然后修改如下:

<?php
 
$data = array(
 'tid' => 100, 
 'name' => '标哥的技术博客',
 'site' => 'www.huangyibiao.com');
 
$response = array(
 'code' => 200, 
 'message' => 'success for request',
 'data' => $data,
 );
 
echojson_encode($response);

我们这里的结构是日常App开发中最常见的返回数据结构了吧?通常都是状态码、状态信息和客户端业务数据。

PHP其实也好给力,声明数组后,通过 json_encode 函数就可以输出json格式数据了!

iOS调GET接口

我们有了服务器,也写了接口了,那么客户端如何请求又如何获取数据呢?我们先来看一下最简单的GET请求例子,其中使用了HYBNetworking笔者的这个开源库:

NSString *url = @"http://www.api.com/index.php";
[HYBNetworkinggetWithUrl:urlrefreshCache:YESsuccess:^(id response) {
 
}fail:^(NSError *error) {
 
}];

我们看一下iOS客户端的响应结果:

利用PHP如何写APP接口详解

从响应结果可以看到,与我们服务器接口所返回的是一致的,看下图在浏览器中访问的效果:

利用PHP如何写APP接口详解

PHP POST接口

假设我们要求传参数type过来,而且要求是数值型,用于返回不同的数据,当我们做接口测试时,就可以通过这么来干,就不需要等后台给接口了!

<?php
 
$type = $_POST['type'];
$data = '';
 
if (isset($type) && is_numeric($type) && $type >= 0) {
 if ($type == 1) {
 $data = array(
  'type' => $type, 
  'name' => '标哥的技术博客',
  'site' => 'www.huangyibiao.com');
 } else if ($type == 2) {
 $data = array(
  'type' => $type, 
  'name' => '公众号:标哥的技术博客',
  'site' => 'weixin search: biaogedejishuboke');
 } 
 
 $response = array(
 'code' => 200, 
 'message' => 'success for request',
 'data' => $data,
 );
 
 echojson_encode($response);
 return;
} 
 
$response = array(
 'code' => 999, 
 'message' => 'argument error for request',
 'data' => $data,
 );
 
echojson_encode($response);

iOS调POST接口

下面是iOS客户端如何调用刚才所写的PHP POST接口,其中使用了HYBNetworking笔者的这个开源库:

NSString *url = @"http://www.api.com/index.php";
NSDictionary *params = @{@"type" : @(1)};
[HYBNetworkingpostWithUrl:urlrefreshCache:YESparams:paramssuccess:^(id response) {
 
}fail:^(NSError *error) {
 
}];

我们看看效果如下,可看到如愿地接收到了服务器返回的接口数据并解析出来了:

利用PHP如何写APP接口详解

总结

本篇文章的内容到这就基本结束了,相信大家若想学习它,一定会认真去操作一遍的!今后会慢慢接触它,慢慢掌握它,一定会让你在工作上更加顺利的!希望本文对大家能有所帮助。

PHP 相关文章推荐
PHP的面向对象编程
Oct 09 PHP
文件系统基本操作类
Nov 23 PHP
用PHP程序实现支持页面后退的两种方法
Jun 30 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 PHP
PHP微信API接口类
Aug 22 #PHP
简单PHP会话(session)说明介绍
Aug 21 #PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 #PHP
PHP控制前台弹出对话框的实现方法
Aug 21 #PHP
php代码检查代理ip的有效性
Aug 19 #PHP
PHP中new static()与new self()的比较
Aug 19 #PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 #PHP
You might like
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
ext实现完整的登录代码
2008/08/08 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
Python定义函数实现累计求和操作
2020/05/03 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
应届生服装设计自我评价
2013/09/20 职场文书
房产代理公证处委托书
2014/04/04 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
入股协议书范本
2014/11/01 职场文书
2014年班干部工作总结
2014/11/25 职场文书
员工自我工作评价
2015/03/06 职场文书