美文网首页
Guzzle 的快速入门

Guzzle 的快速入门

作者: Amazing慕丶涵 | 来源:发表于2020-08-20 19:29 被阅读0次

    一、需求

    • PHP 5.5.0
    • 使用PHP的流, allow_url_fopen 必须在php.ini中启用。
    • 要使用cURL,你必须已经有版本cURL >= 7.19.4,并且编译了OpenSSL 与 zlib。

    注解
    如果没有安装cURL,Guzzle处理HTTP请求的时候不再使用cURL,而是使用PHP流处理,或者你也可以提供自己的发送HTTP请求的处理方式。

    二、安装

    推荐使用 https://packagist.org/
    安装Guzzle,Composer是PHP的依赖管理工具,允许你在项目中声明依赖关系,并安装这些依赖。
    注意:Laravel中安装方法

    composer require guzzlehttp/guzzle
    

    你可以使用composer.phar客户端将Guzzle作为依赖添加到项目:

    php composer.phar require guzzlehttp/guzzle:~6.0
    

    或者,你可以编辑项目中已存在的composer.json文件,添加Guzzle作为依赖:

    {
       "require": {
          "guzzlehttp/guzzle": "~6.0"
       }
    }
    

    安装完毕后,你需要引入Composer的自动加载文件:

    require 'vendor/autoload.php';
    

    你可以在 https://packagist.org/
    发现更多关于怎样安装Composer、配置自动加载以及其他有用的东西。

    三、发送请求

    你可以使用Guzzle的 GuzzleHttp\ClientInterface 对象来发送请求。

    创建客户端

    use GuzzleHttp\Client;
    
    $client = new Client([
        // Base URI is used with relative requests
        'base_uri' => 'http://httpbin.org',
        // You can set any number of default request options.
        'timeout'  => 2.0,
    ]);
    

    下面以微信小程序登录为例

    // 微信小程序登录
        public function wxlogin(Request $request)
        {
            // $appid 和 $secret 在微信小程序后台中可以查看
            $appid = 'xxxxxxxxxxxxxxxxxxxx';
            $secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxx';
            // $code 是小程序传过来的
            $code = $request->get('code');
    
            // 请求地址
            $url = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code";
            $url = sprintf($url,$appid,$secret,$code);
    
            // 声明请求客户端 verify 默认检查证书ssl
            $client = new Client([
                'timeout' => 5,
                'verify' => false
            ]);
            $response = $client->get($url);
            $json = (string)$response->getBody();
    
            // json 转化成数组
            $arr = json_decode($json, true);
    
            // 写入到数据表中
            try {
                Renting::create(['openid' => $arr['openid']]);
            } catch (\Exception $exception) {
    
            }
            return $json;
    
        }
    

    注意: 'verify' => false 这个是配置在本地环境中跳过检查证书ssl,timeout为请求时间

    相关文章

      网友评论

          本文标题:Guzzle 的快速入门

          本文链接:https://www.haomeiwen.com/subject/pkdejktx.html