ThinkPHP是php程序员们经常使用的框架之一,运用框架来开发网站无疑减轻了我们代码量,加快了我们的开发速度,框架底层封装的方法和函数使用起来简直不能太爽。今天给大家总结一个小案例,如何实现一个快递查询的接口。

所谓接口,就是程序之间交互数据的一种方式,说白了就是浏览器通过url请求到的地址中的代码。而提供快递查询的第三方平台有很多,常见的有快递100、聚合数据、阿里云、腾讯云京东万象等。聚合数据首次申请api可以送100次,这里我们以聚合数据平台为例,后面的内容我会把我申请的key展示出来。

接口页面:https://www.juhe.cn/docs/api/id/43

接口地址:http://v.juhe.cn/exp/index

返回格式:json/xml

请求方式:http post/get

必传请求参数: com 快递公司编号; no 快递单号; key 授权key

请求示例:http://v.juhe.cn/exp/index?com=zto&no=73115984252335&key=e12a8de6adad6f7da3c9292f9275f70b

直接请求上面路径的话,得到的无疑是一段可读性不强的数据,如下图:


下面我们使用TP框架将快递信息展示出来:

1.我们使用phpstorm通过命令行工具创建一个api模块:

2.在自动生成的index控制器中声明一个名为kuaidi的函数:

3.代码书写如下:

public function kuaidi(){//接口地址$url = "http://v.juhe.cn/exp/index";//请求参数$params = ['com' => 'zto','no' => '73115984252335','key' => 'e12a8de6adad6f7da3c9292f9275f70b'];//发送请求$res = curl_request($url, true, $params);if(!$res){echo '请求失败';die;}//解析结果$arr = json_decode($res, true);//查询失败if($arr['resultcode'] != 200){echo $arr['reason'];die;}//查询成功,展示信息$list = $arr['result']['list'];echo '时间 ------------------------ 物流信息<br>';foreach($list as $v){echo $v['datetime'], '------------------------', $v['remark'], '<br>';}}

4.通过浏览器访问http://www.tpshop.com/api/index/kuaidi,结果如下:

以上就是实现快递查询接口的整个流程了,另外,我总结了2个注意事项:

1:此访问域名需要在phpStudy集成环境中配置虚拟站点(过程略)以及在host文件中添加 127.0.0.1 www.tpshop.com

2:内置函数json_decode()是对JSON数据进行解码,转换为PHP变量。而json_encode() 是对变量进行JSON编码

另外,在开发接口之后,为了和前端程序员交流起来方便,还需要写一份接口文档哦。

thinkphp 助手函数url不生成https_如何用ThinkPHP框架写一个快递查询接口相关推荐

  1. thinkphp 助手函数url不生成https_thinkphp5.0 URL 地址生成

    有两个方法 使用系统类 使用助手函数 use think\Url; //输出首页地址 Url::build('index/index/index'); //这个也是输出首页地址 url('index/ ...

  2. 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下:

    案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程. 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下: 1 ...

  3. (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)

    写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s ...

  4. python中函数是一段子程序_用Python来写一个男女相亲小程序|码农的情人节

    功能: 你输入你的性别,年龄,生日,我程序就给匹配一下你喜欢的类型,下面我们具体来讲讲怎么用Python写 第一部分:用户输入部分 1.获取用户的输入:我们用raw_input() args =raw ...

  5. 使用 Lambda 函数URL + CloudFront 实现S3镜像回源

    1.背景说明 亚马逊云科技S3是一种对象存储服务,提供行业领先的可扩展性.数据可用性.安全性和性能.各种规模和行业的客户都可以在S3存储和保护任意量的数据.为提高数据安全性,很多客户会选择将现有数据迁 ...

  6. c语言的十进制转十六进制字符串,用c语言写一个函数把十进制转换成十六进制,该如何处理...

    用c语言写一个函数把十进制转换成十六进制 用c语言写一个函数把十进制转换成十六进制 网上找到一些,感觉有占乱 分享到: ------解决方案-------------------- #include ...

  7. 自己写一个strcmp函数

    strcmp是string.h里面的一个库函数,用来比较两个字符串,我们也可以自己写一个, 或许没有库函数那么严谨,但也能基本实现他的用处. #include<stdio.h> int m ...

  8. c语言中如何将字符串转成16进制,用c语言写一个函数把十进制转换成十六进制,该如何处理...

    用c语言写一个函数把十进制转换成十六进制 用c语言写一个函数把十进制转换成十六进制 网上找到一些,感觉有占乱 分享到: ------解决方案-------------------- #include ...

  9. ThinkPHP 5.0常用助手函数

    ThinkPHP 5.0常用助手函数 总结thinkphp手册,以及自己学习中用到的关于tp5的助手函数 首先看看手册给我们提供的助手函数目录: 下面是学习中自己常用到的助手函数 一.url() 一般 ...

最新文章

  1. 自定义searchview包括修改图标样式
  2. sqlplus 自动换行_sqlplus常用操作命令2
  3. 每天学一点flash(16) as3.0 与asp通信(3) 错误探究
  4. linux strcpy函数实现,strcpy(char *dest , char *src)的漏洞
  5. CCD与CMOS摄像头的区别
  6. 快手高级Java四轮面试题:设计模式+红黑树+Java锁+Redis等
  7. 【2016年第5期】面向图数据管理系统基准评测的知识图谱统计特征分析
  8. hadop 查看DataNode的资源使用情况信息(web接口)
  9. Graphics 单元中的类
  10. 在回调中获取Url参数
  11. z tree 如何把选中的节点保存为标准的json格式_为什么MongoDB使用B-Tree?
  12. 苹果 Mac 第二桌面窗口变黄怎么办?只需调整三个设置
  13. Oracle SQL脚本批量导入导出
  14. echarts社区饼图 echart饼图 玫瑰图
  15. 华为服务器鼠标不响应,华为笔记本电脑鼠标失灵没反应如何解决
  16. 李飞飞:我怎样走上 AI 研究之路的?
  17. BFF —— Backend For Frontend
  18. Cobbler自动部署CentOS系统
  19. 动画骨骼【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)...
  20. 实现一个方法,给定一个输入字符串,能够删除所有连续同样字母(大小写不敏感)。例如,输入为ABBCCCCCBBAB,输出就是 ABCBAB

热门文章

  1. 快速排序算法_Python实现快速排序算法
  2. 服务器维修质保合同,服务器维护保修合同(标准版本).pdf
  3. c#队列取值_C# 队列
  4. python 读行为数组_python将多列文件读入数组
  5. 30 个实例详解 TOP 命令
  6. 12星座程序员写代码
  7. mysql添加字段时定义候选键_MySQL 表约束
  8. java数组深拷贝和浅拷贝_java中的深拷贝与浅拷贝(值类型 vs 引用类型)
  9. php3.23,MySQL 3.23.40 又发布了-PHP教程,PHP基础
  10. 京东面试官:呦,你对中间件 Mycat了解的还挺深~