【TP5】安装Guzzle并简单使用
Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。
安装
看到文档的安装方式会不知道怎么弄,因为composer安装列表没有下载方式
(1)打开项目的composer.json文件,添加GuzzleHttp这个安装包
(2)执行composer update
(3)然后项目就有了
使用GuzzleHttp
(1)引入
(2)请求代码
(3)发起请求,这就是简单的使用
源码
base.php文件
<?phpnamespace app\huanxin\controller;use think\config;
use think\Controller;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;class Base extends Controller
{protected $orgname;protected $appname;protected $client_ID;protected $client_Secret;protected $request_url;public function __construct(){$this->orgname = config::get('orgname');$this->appname = config::get('appname');$this->client_ID = config::get('client_ID');$this->client_Secret = config::get('client_Secret');$this->request_url = 'https://a1.easemob.com/';}/*** author:咔咔** 基础请求地址* @return string*/public function baseUrl(){return $this->request_url . $this->orgname . '/' . $this->appname . '/';}/*** 发送请求* @param $method 请求方式* @param array $params 请求参数* @param $options* @return array|mixed* @throws Error*/public function request($method, $url, $params = [], $options = []){$config = ['base_uri' => $this->baseUrl()];$client = new Client($config);$header = ['Content-Type' => 'application/json','Accept' => 'application/json',];$data = ['connect_timeout' => 30, 'headers' => $header];if ($method == 'GET') {$data['query'] = $params;} else {$data['json'] = $params;}$options && $data = array_merge($data, $options);$body = [];try {$res = $client->request($method, $url, $data);$body = \GuzzleHttp\json_decode($res->getBody()->getContents(), 1);} catch (RequestException $e) {throw new Error($e->getMessage(), -1);}return $body;}/*** author:咔咔** 获取token* @throws Error*/public function getTokenFromServer(){$data = ['grant_type' => 'client_credentials','client_id' => $this->client_ID ,'client_secret' => $this->client_Secret];$result = $this->request('POST', 'token', $data);return $result;}}
error.php文件
<?phpnamespace app\huanxin\controller;use Exception;class Error extends \Exception
{public function __construct($message = "", $code = 0, Exception $previous = null){parent::__construct($this->_getMessage($message), $code, $previous);}// TODO 异常信息过滤private function _getMessage($msg){$message = $msg;return $message;}
}
index.php文件
<?phpnamespace app\huanxin\controller;use think\config;class Index extends Base
{public function index(){$data = $this->getTokenFromServer();dump($data);die;}}
项目目录
【TP5】安装Guzzle并简单使用相关推荐
- linux 用root安装mysql数据库_Linux上安装Mysql及简单的使用详解
1. 安装mysql sudo apt-get update sudo apt-get install mysql-server sudo apt-get install python-mysqldb ...
- Ubuntu 安装mysql和简单操作
2019独角兽企业重金招聘Python工程师标准>>> ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-s ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程...
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- python安装numpy模块-python的numpy模块安装不成功简单解决方法总结
为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一 ...
- mac安装telnet 超简单 复制telnet文件即可
mac安装telnet 超简单 复制telnet文件即可: telnet 下载链接: https://github.com/cuifeiran/macos-telnet 将telnet可执行文件扔到m ...
- [转]virtualbox下安装增强工具简单步骤
virtualbox下安装增强工具简单步骤. 因为我最近用VirtualBox安装了Fedora. 直接安装VBoxLinuxadditions-X86.run是会报错的. Building the ...
- TP5安装失败怎么办?
安装TP5遇到这样的错误 TP5安装失败怎么办? [Mon Mar 13 06:24:58.011228 2017] [:error] [pid 10243] [client 192.168.28.1 ...
- Redis的安装配置及简单集群部署
最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...
- 安装rlwrap 的简单方法,亲测好用
安装rlwrap 的简单方法 1. 下载安装 epel包 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.no ...
- Kali Linux虚拟机安装完整安装过程及简单配置(视频)
Kali Linux虚拟机安装完整安装过程及简单配置 点击上述视频播放 转载于:https://www.cnblogs.com/wildernessdreams/p/8408804.html
最新文章
- python3网络编程中semaphore用法_python3 进程信号量semaphore
- 农牧行业销售经理生存手册(二)
- python re.match、re.search以及re.findall的区别
- 在网页中加入百度搜索条
- Qt Creator使用补充工具栏
- Generate Java objects for FpML using JAXB and Maven: The Easy Way!
- 大数据集合求交集_Java8 实现ArrayList求交集并集差集
- 可以随意更改规则的贪吃蛇(只要你懂,建议收藏)
- latex插入图像,插入跨栏图像
- python入口文件_用Python作GIS之三:入口程序 - stargui.py
- 2003-2017年地级市环境指标数据
- java开发软件怎么安装不了_java开发软件的安装
- 实战NLP beginner任务一:基于机器学习的文本分类
- 电脑缓存,缓存设置(电脑缓存设置多少合理)
- python求球的表面积_python中计算体积或表面积的好算法
- 读书百客:《千秋岁·淡烟平楚》赏析
- 认识PaaS、SaaS、LaaS、aPaaS(一堆废话,谨慎进入)
- 尚有缺者,方为完美。小人求全,智者求阙——《致温弟沅弟》曾国藩
- 基础学编程之三个数顺序排序
- python调用linux命令
热门文章
- CSDN上传资源与修改下载所需积分的问题
- 【黄啊码】fastadmin接入微信支付和支付宝支付
- 8.Redis主从复制
- java Swing+mysql+JDBC实现教务系统(源码+数据库+UML图+数据库分析)
- Photoshop入门学习
- matlab randn state 2,matlab中randn(‘state’)
- 广义相对论-学习记录6-第三章-张量分析与黎曼几何3
- 微信企业号回调模式 java_java微信企业号开发之开发模式的开启
- 数据分析报告编写规范
- 双屏、3屏拼接——A卡、N卡——Windows、Linux