• thinkphp框架resultful学习记录


    本周完成的一个thinkphp框架的实例

    1.快递查询实例

    对于本周的学习过程resultful的技术过程当中接触到了接口编程

    完成了第三方查询快递的接口信息平台

    其中蕴含的知识

    1.CURL函数库

    Curl函数库的使用流程:

    ①使用curl_init初始化请求会话

    ②使用curl_setopt设置请求一些选项

    ③使用curl_exec执行,发送请求

    ④使用curl_close关闭请求会话

    需要封装一个函数用来发送curl请求需要在application/common.php当中封装一个curl_request

    ①在php.ini中开启php_curl扩展(必须开启)

    ②建议在php.ini中开启php_openssl扩展(本身不是curl必须的,是调用一些第三方接口需要的)

    ③如果以上操作重启apache后,curl还是不能使用,需要将php安装目录设置到环境变量。

    在common.php当中封装一个公共的接口函数

    if(!function_exists('curl_request')){
        //发送curl请求
        function curl_request($url, $type = false, $params = [], $https=false)
        {
            //调用curl_init() 初始化请求
            $ch = curl_init($url);
            //调用curl_setopt()设置请求选项
            if($type){
                //true 发送post请求  false 默认发送get请求
                //post请求  设置请求方式
                curl_setopt($ch, CURLOPT_POST, true);
                //设置请求参数
                curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            }
            //如果是https请求 需要禁止从服务器端验证本地的证书
            if($https){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            }
            //调用curl_exec() 发送请求 获取结果
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $res = curl_exec($ch);
    //        if(!$res){
    //            //错误信息
    //            $error = curl_error($ch);
    //            //错误码
    //            $errno = curl_errno($ch);
    //        }
            //调用curl_close() 关闭请求
            curl_close($ch);
    
            return $res;
        }
    }

    封装好调用的接口的第三方函数以后从第三方数据平台进行查询

    这里以聚合数据平台为例:接口页面:https://www.juhe.cn/docs/api/id/43  ps:现在该网站快递查询免费已经结束,可以以此案例为例子去尝试其他的接口查询

    接口地址: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=ac2dde994cc76d4f15738f7f97af7ca4

    api模块index控制器kuaidi方法

    public function kuaidi()
        {
            //请求地址
            $url="http://v.juhe.cn/exp/index?com=zto&no=73115984252335&key=ac2dde994cc76d4f15738f7f97af7ca4";
            //请求方式
            //请求参数get
            //请求参数已经拼接到url中
            //发送请求
              $res=curl_request($url);
              if(!$res){
                  echo '请求错误';die;
              }
              //解析数据
              $arr=json_decode($res,true);
              if($arr['resultcode']!= 200){
                  echo $arr['reason'];die;
                  echo '查询失败';die;
              }
              //获取物流进度数据
              $list=$arr['result']['list'];
              echo '时间----------进度<br>';
              foreach ($list as $v){
                  echo $v['datetime'],'--------------',$v['remark'],'<br>';
              }
              die;
        }

    由于案例中的申请需要实名认证,尝试了教学视频当中的案例,然后输出如下结果

  • 相关阅读:
    指针的学习
    (转)c & c++内存分配
    C++实现String
    c& c++笔试题
    appium python api收集
    公司python入职培训流程
    app端性能测试笔记
    h5 测试关注点
    robot framework 牛刀一试
    adb 安装apk 报错:Failure [INSTALL_FAILED_INVALID_URI]
  • 原文地址:https://www.cnblogs.com/liyansong0198/p/13823604.html
Copyright © 2020-2023  润新知