PHP编写简单的App接口

本篇是笔记尝试写的第一个PHP接口,并在iOS开发中尝试应用测试。今天给大家分享如何自己写接口来测试!

相信很多朋友在开发时遇到过这样的问题:后台什么时候提供接口?怎么才提供一个接口,其他接口什么时候给出来?没有接口我们前端怎么能做得了?

哈哈!大学学完本篇就可以自己搞个接口来返回固定的死数据来测试了!

搭建PHP环境

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

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

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

大家可以看一下简单版本配置:全新Mac配置PHP开发环境教程 这篇文章。

启动服务器

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

环境启动后,就可以在浏览器中直接输入 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 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) {

}];

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

小结

本篇就到此为止吧,相信大家若想学习它,一定会认真去操作一遍的!其实写下本篇文章之前,笔者也从尝试过!

今后会慢慢接触它,慢慢掌握它,一定会让你在工作上更加顺利的!

(0)

相关推荐

  • PHP接收App端发送文件流的方法

    本文实例讲述了PHP接收App端发送文件流的方法.分享给大家供大家参考,具体如下: 解决思路: 1. 客户端多张图片进行循环上传,同时附带参数,并用一定规则组合生产数据流(图片数据放在最后) 2. 使用数据流进行传输,php服务端用file_get_content('php://input')进行接收 3. 传输完毕后将数据流按照规则分割,取出最后的图片数据,并写入图片文件 示例代码: 以下代码是发送单张图片和参数PHP文件,多张图片可循环调用. <?php /* curl_post.php *

  • 浅谈使用 PHP 进行手机 APP 开发(API 接口开发)

    一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:可以,因为PHP是脚本语言,是负责完成 B/S架构 或 C/S架构 的S部分,即:主要用于服务端的开发.但是,PHP可不仅仅只能在互联网站上发展,一个PHP for Android(PFA)站点表示他们将可以发布编程模型.工具盒文档让PHP在Android上实现应用.该项目的主要赞助商是开源公司IronTec,PFA使用Scripting Layer for Android (SL4A),也就是Androd Scripting Envi

  • php通过文件流方式复制文件的方法

    本文实例讲述了php通过文件流方式复制文件的方法.分享给大家供大家参考.具体分析如下: php的stream_copy_to_stream()函数可以被用来将一个流中的数据复制到另一个.下面的代码演示了通过流的方式复制文件的代码 <?php function stream_copy($src, $dest) { $fsrc = fopen($src,'r'); $fdest = fopen($dest,'w+'); $len = stream_copy_to_stream($fsrc,$fdes

  • php微信支付之APP支付方法

    本文实例讲述了微信开放平台移动应用集成微信支付功能.分享给大家供大家参考.具体分析如下: WechatAppPay文件代码如下: 复制代码 代码如下: <?php namespace common\services\WechatPay; class WechatAppPay extends WechatPayBase {     //package参数     public $package = [];     //异步通知参数     public $notify = [];     //推送

  • php发送与接收流文件的方法

    本文实例讲述了php发送与接收流文件的方法.分享给大家供大家参考.具体如下: sendStreamFile.php 把文件以流的形式发送 receiveStreamFile.php 接收流文件并保存到本地 sendStreamFile.php文件: <?php /** php 发送流文件 * @param String $url 接收的路径 * @param String $file 要发送的文件 * @return boolean */ function sendStreamFile($url

  • php读取二进制流(C语言结构体struct数据文件)的深入解析

    尽管php是用C语言开发的,不过令我不解的是php没有提供对结构体struct的直接支持.不过php提供了pack和unpack函数,用来进行二进制数据(binary data)和php内部数据的互转: 复制代码 代码如下: string pack ( string $format [, mixed $args [, mixed $...]] )   //Pack given arguments into binary string according to format.  array unp

  • PHP实现批量生成App各种尺寸Logo

    使用PHP GD,使用良好,一键剪裁各种尺寸,打包下载.经常换icon的懂的,美工给你一个1024的logo,你得ps出各种尺寸,于是有了这个东西. 核心代码 复制代码 代码如下: <?php class image {     /**      * source image      *      * @var string|array      */     private $source;     /**      * temporay image      *      * @var f

  • 利用PHP如何写APP接口详解

    搭建PHP环境 由于本人使用的电脑是Mac,因此推荐大家使用MAMP PRO这款软件,不过是收费版,相信不想花钱的大家会有办法搞定的! MAMP PRO这款软件是集成环境软件,已经有apache.mysql.php了,具备运行解析PHP的环境了! 如果不想使用集成环境,可以自己搭建.Mac自带了apache和PHP环境的,只需要稍加配置一下就可以使用了,然后再安装一下mysql就可以了! 大家可以看一下简单版本配置:Mac配置PHP环境 这篇文章. 启动服务器 这里是以MAMP PRO软件为例,

  • PHP编写简单的App接口

    本篇是笔记尝试写的第一个PHP接口,并在iOS开发中尝试应用测试.今天给大家分享如何自己写接口来测试! 相信很多朋友在开发时遇到过这样的问题:后台什么时候提供接口?怎么才提供一个接口,其他接口什么时候给出来?没有接口我们前端怎么能做得了? 哈哈!大学学完本篇就可以自己搞个接口来返回固定的死数据来测试了! 搭建PHP环境 由于本人使用的电脑是Mac,因此推荐大家使用MAMP PRO这款软件,不过是收费版,相信不想花钱的大家会有办法搞定的! MAMP PRO这款软件是集成环境软件,已经有apache

  • Laravel5.4简单实现app接口Api Token认证方法

    我是小白,今天写这篇文章主要是给新手学习看的,大佬就不用看了,有很多不足望大家指出,共同进步. 在开发中许多 API 通常在返回响应之前都需要某种形式的认证,有些时候,一个认证的请求和一个未认证的请求,响应可能不同. 在web项目中,实现认证比较轻松,那么前后端分离的项目中,我们要怎么实现认证,今天这篇文章就以 API token 认证机制,使用Token可以解决laravel API的无状态认证. 一.给用户表users增加api_token字段 php artisan make:migrat

  • 如何用PHP编写简单的api数据接口

    一.编写接口所需几样工具或软件(均是win7+64位) 1.phpStudy.SQLyog和编码工具(sublime text/webStorm/vs code均可,按自己习惯来): 2.安装好phpStudy之后,打开软件,点击启动:如果Apache和MySQL右边的显示都是绿色的,那么说明服务启动成功:另外注意一下开始的PHP服务版本,因为不同的版本对应不同node.js版本或SQLyog版本,如果开启不了,则自行百度解决,一般都是要下载对应支持的VC9(分32位和64位)或VC11(分32

  • python+flask编写一个简单的登录接口

    在学习接口测试的时候往往会因为没有实际操作的接口进行测试而烦恼,这里教大家自己编写两个接口用于学习接口测试 1.编写一个登录的接口 2.在pycharm运行 3.使用apipost进行登录接口测试 输入url和参数值进行访问,访问成功. 4.在pycharm查看是否正常进行访问 5.在编写一个需要登录返回的token直接访问的查询接口 6.运行登录和查询两个接口 7.使用apipost进行登录和查询的接口测试 首先进行登录的接口测试获取返回的token 使用登录返回的token值进行查询的接口测

  • Android编写简单的网络爬虫

    一.网络爬虫的基本知识 网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念.爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页面的连接看做是有向边.图的遍历方式分为宽度遍历和深度遍历,但是深度遍历可能会在深度上过深的遍历或者陷入黑洞.所以,大多数爬虫不采用这种形式.另一方面,爬虫在按照宽度优先遍历的方式时候,会给待遍历的网页赋予一定优先级,这种叫做带偏好的遍历. 实际的爬虫是从一系列的种子链接开始.种子链接是起始节点,种子页面的超链接指向的页面是

  • Python 如何创建一个简单的REST接口

    问题 你想使用一个简单的REST接口通过网络远程控制或访问你的应用程序,但是你又不想自己去安装一个完整的web框架. 解决方案 构建一个REST风格的接口最简单的方法是创建一个基于WSGI标准(PEP 3333)的很小的库,下面是一个例子: # resty.py import cgi def notfound_404(environ, start_response): start_response('404 Not Found', [ ('Content-type', 'text/plain')

  • Selenium结合BeautifulSoup4编写简单的python爬虫

    在学会了抓包,接口请求(如requests库)和Selenium的一些操作方法后,基本上就可以编写爬虫,爬取绝大多数网站的内容. 在爬虫领域,Selenium永远是最后一道防线.从本质上来说,访问网页实际上就是一个接口请求.请求url后,返回的是网页的源代码. 我们只需要解析html或者通过正则匹配提取出我们需要的数据即可. 有些网站我们可以使用requests.get(url),得到的响应文本中获取到所有的数据.而有些网页数据是通过JS动态加载到页面中的.使用requests获取不到或者只能获

  • Java编写简单计算器的完整实现过程

    前言 本文用Java的swing来实现一个简单计算器,主要内容为图形用户界面GUI的实现以及运算表达式核心算法的设计编写. 程序运行环境为Windows10 ,编译环境为MyEclipse . 一.具体功能: 1.:输入,输出 输入:允许输入带有括号的完整计算式(例 8*(4-95)+5÷2*e-pi) 输出:输出Double类型的结果 输出:整个运算表达式并保存于历史记录中 2.:功能 基本的加,减,乘,除,四则运算  平方运算  开方运算  求余运算 最终界面如下图: 除了常规的数字按钮和运

  • 正则表达式创建方式的区别及编写简单的正则方式(js学习总结)

    在字面量方式中,我们//之间包起来的所有的内容都是元字符,有的具有特殊意义,大部分都是代表本身含义的普通的元字符 var name = 'wo'; var reg = /^\d+"+name+"\d+$/ 为了解决上述想在正则里面加上一个变量这样的需求,我们只能使用实例创建的方式了 var reg = new RegExp("^\\d+"+name+"\\d+$","g") 字面量方式和实例创建的方式在正则中的区别? 1.字面

  • 使用Python3 编写简单信用卡管理程序

    1.程序执行代码: #Author by Andy #_*_ coding:utf-8 _*_ import os,sys,time Base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(Base_dir) str="欢迎使用银行信用卡自助服务系统!\n" for i in str: sys.stdout.write(i) sys.stdout.flush() time.

随机推荐