Guzzle:PHP 的 HTTP 请求利器
·
Guzzle:PHP 的 HTTP 请求利器
Guzzle 是 PHP 生态中使用最广的 HTTP 客户端库,GitHub 上收获了超过 23,000 个 Star。

PHP 原生的 curl 函数写起来比较繁琐,处理 cookies、上传文件、流式传输这些场景时,代码容易变得冗长。Guzzle 就是为了解决这类问题。
核心特性
Guzzle 的接口很直白,发一个 GET 请求只需要几行代码:
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://httpbin.org/get');
echo $response->getStatusCode(); // 200
echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
echo $response->getBody();
同步和异步请求用同一个接口:
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
$promise = $client->sendAsync($request)->then(function ($response) {
echo $response->getBody();
});
$promise->wait();

Guzzle 的设计要点:
- PSR-7 兼容:请求、响应、流都遵循 PSR-7 标准接口,可以和其他 PSR-7 库配合使用
- PSR-18 支持:遵循 HTTP 客户端互操作标准,不同客户端之间可以替换
- 传输层无关:不依赖 cURL、PHP streams 或 socket 的具体实现,底层可以自由切换
- 中间件机制:通过中间件对请求和响应做拦截、修改、日志记录等操作
安装
通过 Composer 安装,一行命令:
composer require guzzlehttp/guzzle
版本选择
目前 Guzzle 维护的是 7.x 版本,要求 PHP >= 7.2.5 且 < 8.6。3.x 到 6.x 版本都已经停止维护,新项目直接用 7.x 即可。
Guzzle 从 2011 年开始维护至今,是 PHP HTTP 客户端的事实标准。项目中需要调接口、对接第三方服务的场景,Guzzle 基本是绕不开的选择。
P HTTP 客户端的事实标准。项目中需要调接口、对接第三方服务的场景,Guzzle 基本是绕不开的选择。
更多推荐
所有评论(0)