php curl操作API接口类完整示例
程序员文章站
2023-11-22 11:50:52
本文实例讲述了php curl操作api接口类。分享给大家供大家参考,具体如下:
本文实例讲述了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_setopt($this->curl, curlopt_url, $this->url); curl_setopt($this->curl, curlopt_returntransfer, 1); //curl_setopt($this->curl, curlopt_header, 1); } /** * [_post 设置get请求的参数] * @return [type] [description] */ public function _get() { } /** * [_post 设置post请求的参数] * post 新增资源 * @return [type] [description] */ public function _post() { curl_setopt($this->curl, curlopt_post, 1); curl_setopt($this->curl, curlopt_postfields, $this->data); } /** * [_put 设置put请求] * put 更新资源 * @return [type] [description] */ public function _put() { curl_setopt($this->curl, curlopt_customrequest, 'put'); } /** * [_delete 删除资源] * delete 删除资源 * @return [type] [description] */ public function _delete() { curl_setopt($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_setopt($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_setopt($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 curl用法总结》、《php网络编程技巧总结》、《php数组(array)操作技巧大全》、《php字符串(string)用法总结》、《php数据结构与算法教程》及《php中json格式数据操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
上一篇: ASP.NET入门数据篇
下一篇: Mysql慢查询操作梳理总结