【PHP】如何请求环信的接口

举报
原来是咔咔 发表于 2022/03/28 00:33:59 2022/03/28
1.6k+ 0 0
【摘要】 在请求一些接口直接使用的就是curl原生来请求的,今天我们就使用Guzzle来发起请求。 安装Guzzle     ​安装Guzzle的方法,在之前文章有写过。直接在composer安装列表里边搜索Guzzle,然后按照文档进行安装 封装请求代码    &...

在请求一些接口直接使用的就是curl原生来请求的,今天我们就使用Guzzle来发起请求。

安装Guzzle

    ​安装Guzzle的方法,在之前文章有写过。直接在composer安装列表里边搜索Guzzle,然后按照文档进行安装

封装请求代码

    ​安装完之后就会在vendor目录

像这些请求都是放在base.php的文件里边,作为基类

这两个事必须引入的,一个是http的客户端,一个是异常处理

那么下面这个request的方法就是用来请求环信的接口的方法


      /**
       * author:咔咔
       *
       * 功能请求
       * @param $method
       * @param array $params
       * @param $options
       * @return array|mixed
       * @throws Error
       */
         protected function _request($method, $url, $params = [], $options = [])
          {
             $client = new Client();
             $header = [
                 'Content-Type' => 'application/json',
                 'Accept'       => 'application/json',
              ];
             $token                   = $this->getToken();
             $header['Authorization'] = "Bearer ${token}";
             $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(), true);
              } catch (RequestException $e) {
                 $info = \GuzzleHttp\json_decode($e->getResponse()->getBody()->getContents(), 1);
                 throw new Error($info['error'], -1);
              }
             return $body;
          }
  
 

在这个方法中127行中,里边可以带一个参数也就是基础的请求url

baseUrl()这个方法就是一个基础的url拼成的

然后我们在看一下Guzzle的文档就可以很清晰的看到他的实现方式,就是这个baseUrl()就是一个基础的请求地址,然后根据我们传递的接口地址在拼接上基础地址就是直接发起请求

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/102622997

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。