您的位置:首页 > 其它

【3分钟带你学】接口

2017-12-06 02:26 127 查看

接口编程

一、了解接口

1.什么是接口?

API(Application Programming Interface,应用程序编程接口)

程序之间交互数据的一种方式。

接口编程(开发):分为接口编写,接口调用两部分。

接口编写:在服务端编写一个请求地址(控制器中的方法)中的代码,接收请求参数、处理数据,返回数据。服务端接口就是一个通过url可以访问到的请求地址,类似服务器端处理ajax请求

接口调用:在其他端(浏览器客户端、其他服务端)发送请求,调用服务端的接口地址。

2.请求类型

从请求方式划分 :get、post

从请求协议划分:http、https

3.发送请求的方式

从浏览器(客户端)发送请求:

从地址栏输入url发送请求,只能GET

form 表单提交,可以是GET、POST

Ajax请求,可以是GET、POST

从服务器端php发送请求:

header(Location:http://www.exaple.com;) GET,无返回值

file_get_contents(url)可以获取对应地址的输出,GET,有返回值

使用PHP内置的CURL函数库 可以是GET、POST、http、https有返回值

CURL请求步骤[注意]

[注意]: 使用CURL函数库,必须要在php.ini中开启php_curl扩展②建议在php.ini中开启php_openssl扩展(本身不是curl必须的,是调用一些第三方接口需要的) ③若还是不能使用,需要将php安装目录设置到环境变量

curl_init()     //函数初始化请求会话,可以传递一个请求地址参数。
curl_setopt()   //函数设置请求参数(选项)
curl_exec()     //函数发送请求,有返回值
//返回值数据类型:字符串格式
//根据字符串结构,通常分为:普通字符串/json格式/xml格式
curl_close()    //关闭请求会话


二、经典案例

1.快递查询接口(快递100)

快递100提供签约和免签约2个快递接口,以免签约为例

接口地址:https://www.kuaidi100.com/query?type=快递公司&postid=运单编号

请求方式:get

示例:快递公司:yunda 单号:3101314976598

此接口是get方式的接口,在浏览器直接访问,得到的是json格式的字符串。

步骤1

//封装一个函数用来发送curl请求
/*
*$url 请求的地址
*$post 请求方式,默认get
*$params post方式的请求参数
*https  是否是https请求,默认http
*/
function curl_request($url, $post=false, $params=array(), $https=false){
$ch = curl_init($url);    //初始化请求会话
if($post){
curl_setopt($ch, CURLOPT_POST, true);  //设置请求方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);   //设置post请求参数,get的参数在url中
}
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  //如果是https请求,且没有证书,可以禁止从服务器端验证ssl证书
}
$res = curl_exec($ch); //发送请求,有返回值
curl_close($ch); //关闭会话
return $res;
}


2编写控制器方法

public function kuaidi(){
$type = 'yunda';
$postid = '3101314976598';
$url = "https://www.kuaidi100.com/query?{$type}&{$postid}";
//发送请求
$res = curl_request($url, false, array(), true);
if(!$res) die('请求失败');
$data = json_decode($res, true);//将返回的数组转换为数组
if($data['status'] != 200) die($data['message']);

/***************如果1:直接输出展示************/

foreach($data['data'] as $v){
echo $v['time'] .'----'. $v['context'] .'<br>';
}
/************如果2:ajax请求*************/
$return = array(
'code'  => 10000,
'msg'   =>  'success',
'data'  =>  $data['data']
)
$this -> ajaxReturn($return);
/************如果3:调用页面展示***********/
$this -> assign('data', $data['data']);
$this -> display();
}


2.短信验证码

使用接口需要先申请接口的appkey

模板页面发送ajax请求(略)

编写控制器方法是

public function sendmsg(){
$phone = I('post.phone');
$code = mt_rand(1000, 9999);
$content = "您的验证码是:{$code}";
$appKey = "你获取的appKey";
$url = "请求的接口地址?$mobile={$phone}&$content={$content}&$code={$code}";
//发送请求
$res = curl_request($url,post,array(),$true);
if(!$res){
$return = array('code' => 10001, 'msg' => '网络异常');
$this -> ajaxReturn($return);
}
$data = json_encode($res, true);
if($data['code'] != 10000){
$return = array('code' => 10002, 'msg' => $data['msg']);
$this -> ajaxReturn($return);
}
$return = array('code'=>10000,'msg'=>"发送成功");
$this -> ajaxReturn($return);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax 接口 接口调用