Guzzle 的快速入门

2020-08-20  本文已影响0人  Amazing慕丶涵

一、需求

注解
如果没有安装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为请求时间

上一篇下一篇

猜你喜欢

热点阅读