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并简单使用相关推荐

  1. linux 用root安装mysql数据库_Linux上安装Mysql及简单的使用详解

    1. 安装mysql sudo apt-get update sudo apt-get install mysql-server sudo apt-get install python-mysqldb ...

  2. Ubuntu 安装mysql和简单操作

    2019独角兽企业重金招聘Python工程师标准>>> ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-s ...

  3. asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程...

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  4. python安装numpy模块-python的numpy模块安装不成功简单解决方法总结

    为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一 ...

  5. mac安装telnet 超简单 复制telnet文件即可

    mac安装telnet 超简单 复制telnet文件即可: telnet 下载链接: https://github.com/cuifeiran/macos-telnet 将telnet可执行文件扔到m ...

  6. [转]virtualbox下安装增强工具简单步骤

    virtualbox下安装增强工具简单步骤. 因为我最近用VirtualBox安装了Fedora. 直接安装VBoxLinuxadditions-X86.run是会报错的. Building the ...

  7. TP5安装失败怎么办?

    安装TP5遇到这样的错误 TP5安装失败怎么办? [Mon Mar 13 06:24:58.011228 2017] [:error] [pid 10243] [client 192.168.28.1 ...

  8. Redis的安装配置及简单集群部署

    最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...

  9. 安装rlwrap 的简单方法,亲测好用

    安装rlwrap 的简单方法 1. 下载安装 epel包 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.no ...

  10. Kali Linux虚拟机安装完整安装过程及简单配置(视频)

    Kali Linux虚拟机安装完整安装过程及简单配置 点击上述视频播放 转载于:https://www.cnblogs.com/wildernessdreams/p/8408804.html

最新文章

  1. python3网络编程中semaphore用法_python3 进程信号量semaphore
  2. 农牧行业销售经理生存手册(二)
  3. python re.match、re.search以及re.findall的区别
  4. 在网页中加入百度搜索条
  5. Qt Creator使用补充工具栏
  6. Generate Java objects for FpML using JAXB and Maven: The Easy Way!
  7. 大数据集合求交集_Java8 实现ArrayList求交集并集差集
  8. 可以随意更改规则的贪吃蛇(只要你懂,建议收藏)
  9. latex插入图像,插入跨栏图像
  10. python入口文件_用Python作GIS之三:入口程序 - stargui.py
  11. 2003-2017年地级市环境指标数据
  12. java开发软件怎么安装不了_java开发软件的安装
  13. 实战NLP beginner任务一:基于机器学习的文本分类
  14. 电脑缓存,缓存设置(电脑缓存设置多少合理)
  15. python求球的表面积_python中计算体积或表面积的好算法
  16. 读书百客:《千秋岁·淡烟平楚》赏析
  17. 认识PaaS、SaaS、LaaS、aPaaS(一堆废话,谨慎进入)
  18. 尚有缺者,方为完美。小人求全,智者求阙——《致温弟沅弟》曾国藩
  19. 基础学编程之三个数顺序排序
  20. python调用linux命令

热门文章

  1. CSDN上传资源与修改下载所需积分的问题
  2. 【黄啊码】fastadmin接入微信支付和支付宝支付
  3. 8.Redis主从复制
  4. java Swing+mysql+JDBC实现教务系统(源码+数据库+UML图+数据库分析)
  5. Photoshop入门学习
  6. matlab randn state 2,matlab中randn(‘state’)
  7. 广义相对论-学习记录6-第三章-张量分析与黎曼几何3
  8. 微信企业号回调模式 java_java微信企业号开发之开发模式的开启
  9. 数据分析报告编写规范
  10. 双屏、3屏拼接——A卡、N卡——Windows、Linux