Thinkphp5使用api接口demo

阿里云有免费的手机归属地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为数组。

时间: 2024-10-06 13:11:56

Thinkphp5使用api接口demo的相关文章

.net的快递鸟物流单号自动识别查询api接口demo实例

1.应用场景(1)PC端.移动端应用或网站应用集成运单物流信息查询功能时,只需要录入单号即可完成查询,无需用户输入快递公司.(2)电商网站要在快递鸟查询或者订阅运单时,可通过单号识别先行判断物流公司后,再订阅到快递鸟.2.是否需要授权要Free申请服务3.接口描述/说明API ID:点击申请API Key:快递鸟示例(1)请求示例JSON格式(1)该接口仅对运单号做出识别,识别可能属于的一家或多家快递公司.(2)接口并不返回物流轨迹,用户可结合即时查询接口和订阅查询接口完成轨迹查询.订阅的动作.

【Ruby】国际短信API接口demo

说明: 以下代码只是为了方便客户测试而提供的示例代码,客户可以根据自己的需要另行编写 该代码仅供学习和研究接口使用,只是提供了一个参考 require 'net/http' require 'uri' require 'json' params = { "account" => "", "password" => "a.123456", 手机号码,格式(区号+手机号码),例如:8615800000000,其中86为

【C(C++)】创蓝253云通讯平台国际短信API接口DEMO

#include <arpa/inet.h>#include <assert.h>#include <errno.h>#include <netinet/in.h>#include <signal.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/socke

【PYTHON】创蓝253云通讯平台国际短信API接口DEMO

#!/usr/local/bin/python#-- coding:utf-8 -- Author: jacky Time: 14-2-22 下午11:48 Desc: 短信http接口的python代码调用示例 import httplibimport urllibimport json#服务地址 host = "intapi.253.com" #端口号port = 80 #版本号version = "v1.1" #查账户信息的URIbalance_get_uri

【shell】创蓝253云通讯平台国际短信API接口DEMO

#!/bin/sh account and password can be change to what you wanna! #author ChuangLan#修改为您的accountaccount=""#修改为您的pwpassword="a.123456"#手机号码,格式(区号+手机号码),例如:8615800000000,其中86为中国的区号mobile="8615800000000"#设置您要发送的内容msg="[253云通讯

【ASP】创蓝253云通讯平台国际短信API接口DEMO

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Function Post(url,data) dim Https set Https=server.createobject("MSXML2.XMLHTTP") Https.open "POST",url,false Https.setRequestHeader "Content-Type",&qu

免费顺丰快递单号查询电子面单api接口对接【快递鸟API】

顺丰速运快递查询接口API和电子面单接口怎么对接?除了通过顺丰自己的接口对接外,用的最多的就是第三方通过快递鸟对接了,通过顺丰单号和手机号后四位查询轨迹信息,如果是通过快递鸟下单获得的顺丰单号,可通过单号直接查询,具体下载快递鸟接口技术文档查看接口说明.ShipperCode为SF,且快递单号非快递鸟渠道返回时,必填,对应收件人/寄件人手机号后四位:ShipperCode为SF,且快递单号为快递鸟渠道返回时,不填. 一.接入前准备(TO商家业务人员) 1.申请快递鸟用户ID和API key1.1

华为云JavaAPI接口Demo

API接口Demo: https://support.huaweicloud.com/devg-IoT/iot_02_3002.html 参考网址:https://huaweicloud.blog.csdn.net/article/details/103934131 1.修改DEMO中的常量.打开“com.utils > Constant.java” 修改IOT_BASE_URL为物联网平台的应用接入地址,可在设备接入服务的管理控制台查看. 修改IOT_APPID和IOT_SECRET为配置设备

电商平台适用基础快递查询api接口对接demo解决方案

电商企业从接收订单-配货-打印快递单到后期的快递员收件-快递配送-轨迹查询-签收短信通知等,都需要快递接口的接入.整理目前可以实现如上服务的有 1.各家快递公司:提供快递查询.电子面单打印等2.快递100:提供在线寄件.快递查询等3.菜鸟:提供快递查询.电子面单打印等4.快递鸟:提供预约寄件.快递查询.电子面单打印.代收货款.短信服务等 各家快递公司提供的是一级接口,快递100.菜鸟和快递鸟是集成接口,对于使用快递比较多的企业来说,集成接口相对更好维护一些.所以一般电商都会选择集成的接口.快递鸟