在PHP后端的开发过程中除了获取數据库的数据和处理数据的内部逻辑,往往还需要请求其他服务器接口的数据我们一般有3种方式来获取数据,分别是:
3种常用的接口获取方式简述
/** 函数作用:将整个文件读入字符串
// 笔者开发使用Yii2所以路由控制器使用action的写法
// 该url为笔者写的另外一篇文章,测试用
// 设置不直接輸出结果而是保存到$data中
所以,在常规PHP请求中我们使用curl的方式来请求接口数据。
curl
的基本使用方法就是:
/** 函数作用:初始化curl会话
/** 函数作用:设置cURL传输选项
/** 函数作用:设置cURL传输选项
// 设置url和不直接输出结果单项设置
列举一些常用的参数,全部参数可以在 查阅
-
CURLOPT_HEADER
启用时会将头文件的信息作为数据流输出。 -
CURLOPT_POSTFIELDS
全部数据使用HTTP协议中的 "POST" 操作来发送该参数只支持一维数组,如果需要传递多维数组需要使用http_build_query
处理,更详细嘚信息可以查看这篇文章
/** 函数作用:执行curl会话
/** 函数作用:关闭curl会话
// 不直接输出,返回到变量 // 设置超时防止机器被大量超时请求卡死 // 对數据进行编码,方便前后端数据处理
除了上面的curl_init
之外cURL还支持curl_multi_init
并行请求,允许我们同时请求上百个接口而不是foreach
轮询阻塞式的请求。详细嘚可以查看我的另一篇文章:
如果你需要非阻塞的请求,可以使用fsockopen()
方法
常规的使用curl
来请求,功能强大使用方便,按需配置