php 自己封装一个调用第三方接口的函数
①在php.ini中开启php_curl扩展(必须开启)
②建议在php.ini中开启php_openssl扩展(本身不是curl必须的,是调用一些第三方接口需要的
③如果以上操作重启apache后,curl还是不能使用,需要将php安装目录设置到环境变量。
//封装 调用外部接口信息函数
if(!function_exists('curl_reuqest')){
function curl_reuqest($url,$type=false,$params=[],$https=false){
// 初始化请求
$ch = curl_init($url);
// 判断发送什么请求,默认get请求
if($type){
// 设置请求方式
curl_setopt($ch,CURLOPT_POST ,true);
// 设置请求参数
curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
}
// 如果是https请求,设置禁止从服务器验证本地证书
if($https){
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
}
// 发送请求设置以文件流形式返回
curl_setopt($ch,CURLOPT_RETURNTRANSFER ,true);
$res = curl_exec($ch);
// 调试运行时错误信息,调试完删除
if(!$res){
// 错误信息
$error = curl_error($ch);
// 错误码
$error = curl_errno($ch);
}
// 关闭请求
curl_close($ch);
// 返回请求内容
return $res;
}
测试代码
<div>
{foreach $list as $rows}
快递实时跟踪时间: <span>{$rows['datetime']}</span></br>
地址:<input type="text" name="" id="" value="{$rows['remark']}"><br>
{/foreach}
</div>
public function index(){
// url地址
$url = "http://v.juhe.cn/exp/index?key=e82ce96ccb085c23faf007a887c8abfc&com=yt&no=806827436235013721";
// 请求方式 get
// 发送请求
$res = curl_reuqest($url);
// 对结果进行处理
if(!$res){
echo '请求错误';exit;
}
// 解析返回的数据 json格式的字符串
$arr = json_decode($res,true);
if($arr['resultcode'] != 200){
echo $arr['reason'];die;
echo '查询失败';die;
}
// 取出有用的字段
$list = $arr['result']['list'];
// 渲染页面
return view('index',['list'=>$list]);
}
测试结果
快递实时跟踪时间: 2019-07-09 21:14:57
地址:
快递实时跟踪时间: 2019-07-09 22:09:10
地址:
快递实时跟踪时间: 2019-07-10 02:17:02
地址:
快递实时跟踪时间: 2019-07-10 03:25:52
地址:
快递实时跟踪时间: 2019-07-11 15:12:29
地址:
php 自己封装一个调用第三方接口的函数的更多相关文章
- java springboot调用第三方接口 借助hutoool工具类 爬坑
楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...
- Java调用第三方接口示范
在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...
- java代码调用第三方接口
一.利用httpclient来字符串参数(url是第三方接口,不带参数,如:http://192.168.16.200:8081/faceInfo/list,param是url后面所要带的参数) pu ...
- Java调用第三方接口工具类(json、form)
1.JSON值访问 /** * 调用对方接口方法 * @param path 对方或第三方提供的路径 * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析 ...
- 使用WebClient调用第三方接口
需要调用一个第三方接口,传参返回数据 本来是很简单的一个需求,搞了一天没整好 首先在POSTMAN中测试没有问题,但是使用jquery ajax在前台就会涉及到跨域 虽然设置了 无论怎么写都会报错 C ...
- 使用HttpClient调用第三方接口
最近项目中需要调用第三方的Http接口,这里我用到了HttpClient. 首先我们要搞明白第三方接口中需要我们传递哪些参数.数据,搞明白参数以后我们就可以使用HttpClient调用接口了. 1.调 ...
- SpringMVC 结合HttpClient调用第三方接口实现
使用HttpClient 依赖jar包 1:commons-httpclient-3.0.jar 2:commons-logging-1.1.1.jar 3:commons-codec-1.6.jar ...
- 输入网址调用第三方接口获取结果_java
最近公司给了一个第三方服务的网址,要我调用后返回需要用到的信息 具体网址:http://www.xxxx.com/xxx-api/xxxx/getXxxByUserId?userId=" + ...
- 分享一个PHP调用RestFul接口的函数
php越来越前端化,大型系统中的php经常是调用后端服务的接口,这里分享一个函数.希望对大家有用. /** * [http 调用接口函数] * @Date 2016-07-11 * @Author G ...
随机推荐
- 搭建基于.NetFrameWork的私有nuget服务端及打包项目发布上传
一.私有Nuget服务端搭建 1.创建一个.NetFramework web项目 2.在nuget管理中 安装 nuget.server包 3.安装完成后修改web.config里面的 apikey ...
- C语言实现常用数据结构——图
#include<stdio.h> #include<stdlib.h> #define SIZE 20 #define LENGTH(a) (sizeof(a)/sizeof ...
- MyBatis中二级缓存和延时加载同时开启的问题
首先,二级缓存默认不开启! 要配置 <setting name="cacheEnabled" value="true"/> 在MyBatis中:一级 ...
- 基于python语言的自动化测试中生成html的测试报告时HtmlTestRunner模块常见问题
一.导入了HTMLTestRunner模块,报错:No module named StringIO,在python3.x中确实没有,在第94行引入的名称改成import io,539行要改成self. ...
- 简单介绍几种Java后台开发常用框架组合
01 前言 Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇 ...
- Dubbo源码学习之-SPI介绍
前言 学习之路还是要戒骄戒躁,一以贯之的积累前行.之前的公司部门技术达人少,自己总向往那些技术牛人多的团队,想象自己进去之后能跟别人学到多少东西.如今进到一个这样的团队之后,却发现之前自己的想法过于幼 ...
- 教你用VMware Workstation Pro 12 安装XP系统
转 https://jingyan.baidu.com/article/ff42efa9102da3c19e220219.html
- Hive入门(二)分区
1 基本概念 1.1 什么是分区 Hive查询中一般会扫描整个表内容,会消耗很多时间.有时候只需要查询表中的一部分数据,因此建表时引入了partition(分区)概念. 表中的一个 Partition ...
- RedisDesktopManager远程连接Linux系统的Redis服务
linux下安装redis :https://www.runoob.com/redis/redis-install.html 进入 src 运行redis : ./redis-server 打开另 ...
- django基础知识之中间件:
中间件 是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出 激活:添加到Django配置文件中的MIDDLEWARE_CLASSES元组中 每个中间件 ...