博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thinkphp5使用api接口demo
阅读量:4693 次
发布时间:2019-06-09

本文共 3114 字,大约阅读时间需要 10 分钟。

阿里云有免费的手机归属地api接口,作为新手的博主决定使用该接口写一个手机归属地查询网站,学习api的使用。

 主要思路:

获取前台传入的手机号->写出请求url,请求头,请求方式->初始化cURL变量->设置cURL变量参数->执行查询,保存返回的json数据->关闭查询连接->将json数据解析为php数组->将该php数组赋值到模板->前台调用该数组值。

public function index()    {        $num=input('m');                                     //获取前台提交的手机号        $host='http://showphone.market.alicloudapi.com';       //查询主机链接        $path="/6-1";        $querys="num=".$num;                                 //查询参数        $url=$host.$path.'?'.$querys;                           //完整请求链接        $appcode='';                                       //阿里云提供的接口app码        $headers = array();        array_push($headers, "Authorization:APPCODE " . $appcode);//请求头        $method='GET';                                               //请求方式        $curl=curl_init();                                           //初始化一个curl句柄,用于获取其它网站内容        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); //请求方式        curl_setopt($curl, CURLOPT_URL, $url);   //请求url        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); //请求头        curl_setopt($curl, CURLOPT_FAILONERROR, false);  //是否显示HTTP状态码        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//执行成功返回结果        curl_setopt($curl, CURLOPT_HEADER, false);    //是否返回请求头信息        if (1 == strpos("$".$host, "https://"))        {            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//禁止curl验证对等证书            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//不检查证书        }        $res=curl_exec($curl);//执行查询句柄        curl_close($curl);    //关闭查询连接        $resu=json_decode($res,true);//将json数据解码为php数组        if($resu['showapi_res_body']['ret_code']==-1){          //返回错误码,查询失败            return $this->error('没有查询结果,请重新输入','Index/index');        }else{            $this->assign('num',$num);           //将查询手机号写入模板            $this->assign('res',$resu);          //将查询结果php数组写入模板            return $this->fetch('index');        }    }

1.cURL介绍

  cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。

2.基本结构

在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:

(1)初始化

 curl_init()

(2)设置变量

curl_setopt() 

最为重要,一切玄妙均在此。有一长串cURL参数可供设置,它们能指定URL请求的各个细节。要一次性全部看完并理解可能比较困难,所以今天我们只试一下那些更常用也更有用的选项。

(3)执行并获取结果

curl_exec()

(4)释放cURL句柄

curl_close()

3.cURL实现Get和Post

3.1 Get方式实现

  //初始化  $ch = curl_init();   //设置选项,包括URL  curl_setopt($ch, CURLOPT_URL, "http://www.jb51.net");  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  curl_setopt($ch, CURLOPT_HEADER, 0);  //执行并获取HTML文档内容  $res = curl_exec($ch);  //释放curl句柄  curl_close($ch);  //打印获得的数据 
var_dump($res);

 

3.2 Post方式实现

 
  $url = "http://localhost/web_services.php";  $post_data = array ("username" => "bob","key" => "12345");   $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // post数据  curl_setopt($ch, CURLOPT_POST, 1);  // post的变量  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);  $res = curl_exec($ch);  curl_close($ch);  //打印获得的数据  var_dump($res);

 4.使用php json_decode()函数解析json为数组。

 附上demo地址:https://github.com/ValueStar/PhoneNumberAttribution

转载于:https://www.cnblogs.com/youth-dream/p/7392486.html

你可能感兴趣的文章
Nginx
查看>>
leetcode133 - Clone Graph - medium
查看>>
Mybatis(一)入门
查看>>
DDR工作原理(转)
查看>>
(Frontend Newbie) Web三要素(一)
查看>>
(转载-学习)python wsgi 简介
查看>>
QPushButton 控制两种状态
查看>>
一点小基础
查看>>
PHP 自动加载类 __autoload() 方法
查看>>
JDK中的Timer和TimerTask详解(zhuan)
查看>>
【python练习】ATM&购物商城程序
查看>>
nginx 日志问题(\x22)
查看>>
装饰器、迭代器、生成器
查看>>
对闭包的一点小认识
查看>>
四则运算.结对编程
查看>>
javascript字符串加密解密函数
查看>>
VBS读取txt文档数据查找Excel中单元格数据符合条件的剪切到工作表2中
查看>>
如何利用php+android+新浪sae服务器做一个app下载应用
查看>>
java怎么处理json数据
查看>>
每日站立会议4-19
查看>>