<?php
Class Response
{

/**
* 返回json数据
* @param $code 状态码
* @param $message 描述信息
* @param $data 数据
* @param $type 类型
* @param $callback 回调函数
**/
public static function show($code,$message=”,$data=”,$type = ‘json’,$callback=”)
{
if($type==’json’)
{
echo self::jsonEncode($code,$message,$data);
}elseif($type == ‘xml’)
{
echo self::xmlEncode($code,$message,$data);
}elseif($type == ‘jsonp’)
{
echo $callback.'(‘.self::jsonEncode($code,$message,$data).’)’;
}

}

/**
* 返回json数据
* @param $code 状态码
* @param $message 描述信息
* @param $data 数据
*
**/
public static function jsonEncode($code,$message=”,$data=”)
{
if(!is_numeric($code))
{
return ”;
}

$result = array(
‘code’ => $code,
‘message’ => $message,
‘data’ => $data,
);
header(“Content-type:text/json;chaset=utf-8″);
return json_encode($result);
}
/**
* 返回XML数据
* @param $code 状态码
* @param $message 描述信息
* @param $data 数据
*
**/
public static function xmlEncode($code,$message,$data=array())
{
if(!is_numeric($code))
{
return ”;
}

$result = array(
‘code’ => $code,
‘message’ => $message,
‘data’ => $data,
);

header(“Content-type:text/xml;chaset=utf-8”);
$xml = “<?xml version=’1.0′ encoding=’utf-8′ ?>\n”;
$xml .= “<root>\n”;
$xml .= self::xmlToEncode($result);
$xml .= “</root>\n”;

return $xml;

}

/**
* XML内容循环
* @param $data 数据
*
**/
public static function xmlToEncode($data)
{
if(empty($data))
{
return ”;
}
$xml = $attr = ”;
foreach ($data as $key => $value)
{
if(is_numeric($key))
{
$attr = “id='{$key}'”;
$key = “item”;
}
$xml .= “<{$key} {$attr}>”;
$xml .= is_array($value) ? self::xmlToEncode($value) : $value ;
$xml .= “</{$key}>\n”;
}

return $xml;
}
}

//二维数据
$type = isset($_GET[‘type’])? $_GET[‘type’] : ‘json’;
$callback = isset($_GET[‘callback’])? $_GET[‘callback’] : ”;

$arr = array(
‘id’=>1,
‘name’=>’jia’,
‘type’=>array(1,2,3)
);
// 状态码 描述信息 数据 类型 回调函数
Response::show(200,’数据返回成功’,$arr,$type,$callback);

APP接口的更多相关文章

  1. APP接口自动化测试JAVA+TestNG(一)之框架环境搭建

    前言 好久不曾写点啥,去年换到新公司组测试团队与培养建设花费大量时间与精力,终于架构成型与稳定有时间可以打打酱油了.很久没有总结点啥,提笔想写的内容太多,先放APP接口自动化的内容吧,这个估计大家比较 ...

  2. 关于APP接口设计(转)

    最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项: 1.效率:接口访问速度 APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所 ...

  3. 《PHP开发APP接口》笔记

    PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用 ...

  4. Fiddler抓包测试App接口

    Fiddler抓包测试App接口 使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理. 抓包过 ...

  5. APP 接口开发及读取静态缓存

    <?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...

  6. 关于APP接口设计

    最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项: 1.效率:接口访问速度 APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所 ...

  7. 【转】基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件 ...

  8. App接口设计

    关于APP接口设计 http://blog.csdn.net/gebitan505/article/details/37924711/

  9. APP接口版本兼容的问题

    现在基本每个公司都做APP,所以大家都面临 APP接口版本兼容的问题. iOS和android 要不断开发新版本,很多服务端开发都是在以前接口的逻辑上进行修改.新的APP和接口开发后,接口如何兼容老的 ...

  10. 关于PHP写APP接口的安全问题探讨(一)

    在探讨这个问题之前,先要确认一点的是,作为一名互联网Coder,无论你是前端或者后端你都要对http请求要有一定的了解,知道http特性,要清楚的了解http里面的Request与Response是什 ...

随机推荐

  1. GPUImage每个类的作用

    28 #import "GPUImageBrightnessFilter.h"                //亮度 29 #import "GPUImageExpos ...

  2. Codeforces 909 C. Python Indentation (DP+树状数组优化)

    题目链接:Python Indentation 题意: Python是没有大括号来标明语句块的,而是用严格的缩进来体现.现在有一种简化版的Python,只有两种语句: (1)'s'语句:Simple ...

  3. AServer - 基于Asp.net core Kestrel的超迷你http服务器

    AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...

  4. adb server version (31) doesn't match this client (39) 解决方案

    adb server version (31) doesn't match this client (39) 问题的解决方案, 在cmd中输入adb nodaemon server -a后解决了, 记 ...

  5. CentOS7.2下配置SOCKS5代理

    SOCKS介绍: 1.这里只做简单介绍.         SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Int ...

  6. WebGL——osg框架学习四

    这篇我们接着来看一下DrawEntityActor类,我们来看看这个继承DrawActor的类到底做了什么事.我们之前学习了Drawable对应的DrawActor,那么我们类比的来看Drawable ...

  7. java并发之线程池的使用

    背景 当系统并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要消耗大量的系统资源. 所以需要一个办法使得线程可以 ...

  8. LeetCode 192. Word Frequency

    分析 写bash,不太会啊…… 难度 中 来源 https://leetcode.com/problems/word-frequency/ 题目 Write a bash script to calc ...

  9. jar包、war包

    JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了).然后把war发布到Tomcat的webapps目录下,Tomcat ...

  10. CocoStuff—基于Deeplab训练数据的标定工具【三、标注工具的使用】

    一.说明 本文为系列博客第三篇,主要展示COCO-Stuff 10K标注工具的使用过程及效果. 本文叙述的步骤默认在完成系列文章[二]的一些下载数据集.生成超像素处理文件的步骤,如果过程中有提示缺少那 ...