利用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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
基于mysql的论坛(7)
Oct 09 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP 命名空间实例说明
Jan 27 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
PHP闭包(Closure)使用详解
May 02 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
php 算法之实现相对路径的实例
Oct 17 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 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
dedecms模板标签代码官方参考
2007/03/17 PHP
php中使用websocket详解
2016/09/23 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
Python抓取框架 Scrapy的架构
2016/08/12 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python中return函数返回值实例用法
2020/11/19 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
大一学生假期实习的自我评价
2013/10/12 职场文书
高中课程设置方案
2014/05/28 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
市场总监岗位职责
2015/02/11 职场文书
2016年少先队活动总结
2016/04/06 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
如何用python反转图片,视频
2021/04/24 Python
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android