php curl操作API接口类完整示例
网络编程 2021-07-04 23:05www.168986.cn编程入门
这篇文章主要介绍了php curl操作API接口类,结合完整形式形式分析了php针对curl请求发送、获取、设置、关闭连接等操作封装技巧,需要的朋友可以参考下
本文实例讲述了php curl操作API接口类。分享给大家供大家参考,具体如下
<?php namespace curl; / Created by PhpStorm. User: Administrator Date: 2017/6/16 Time: 9:54 / class ApiClient { //请求的token const token='token_str'; //请求url private $url; //请求的类型 private $requestType; //请求的数据 private $data; //curl实例 private $curl; public $status; private $headers = array(); / [__construct 构造方法, 初始化数据] @param [type] $url 请求的服务器地址 @param [type] $requestType 发送请求的方法 @param [type] $data 发送的数据 @param integer $url_model 路由请求方式 / public function __construct($url, $data = array(), $requestType = 'get') { //url是必须要传的,并且是符合PATHINFO模式的路径 if (!$url) { return false; } $this->requestType = strtolower($requestType); $paramUrl = ''; // PATHINFO模式 if (!empty($data)) { foreach ($data as $key => $value) { $paramUrl.= $key . '=' . $value.'&'; } $url = $url .'?'. $paramUrl; } //初始化类中的数据 $this->url = $url; $this->data = $data; try{ if(!$this->curl = curl_init()){ throw new Exception('curl初始化错误'); }; }catch (Exception $e){ echo '<pre>'; print_r($e->getMessage()); echo '</pre>'; } curl_set($this->curl, CURLOPT_URL, $this->url); curl_set($this->curl, CURLOPT_RETURNTRANSFER, 1); //curl_set($this->curl, CURLOPT_HEADER, 1); } / [_post 设置get请求的参数] @return [type] [description] / public function _get() { } / [_post 设置post请求的参数] post 新增资源 @return [type] [description] / public function _post() { curl_set($this->curl, CURLOPT_POST, 1); curl_set($this->curl, CURLOPT_POSTFIELDS, $this->data); } / [_put 设置put请求] put 更新资源 @return [type] [description] / public function _put() { curl_set($this->curl, CURLOPT_CUSTOMREQUEST, 'PUT'); } / [_delete 删除资源] delete 删除资源 @return [type] [description] / public function _delete() { curl_set($this->curl, CURLOPT_CUSTOMREQUEST, 'DELETE'); } / [doRequest 执行发送请求] @return [type] [description] / public function doRequest() { //发送给服务端验证信息 if((null !== self::token) && self::token){ $this->headers = array( 'Client-Token:'.self::token,//此处不能用下划线 'Client-Code:'.$this->setAuthorization() ); } //发送头部信息 $this->setHeader(); //发送请求方式 switch ($this->requestType) { case 'post': $this->_post(); break; case 'put': $this->_put(); break; case 'delete': $this->_delete(); break; default: curl_set($this->curl, CURLOPT_HTTPGET, TRUE); break; } //执行curl请求 $info = curl_exec($this->curl); //获取curl执行状态信息 $this->status = $this->getInfo(); return json_decode($info); } / 设置发送的头部信息 / private function setHeader(){ curl_set($this->curl, CURLOPT_HTTPHEADER, $this->headers); } / 生成授权码 @return string 授权码 / private function setAuthorization(){ $authorization = md5(substr(md5(self::token), 8, 24).self::token); return $authorization; } / 获取curl中的状态信息 / public function getInfo(){ return curl_getinfo($this->curl); } / 关闭curl连接 / public function __destruct(){ curl_close($this->curl); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程