使用Guzzle的HTTP缓存中间件提升性能
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Middleware;
use GuzzleHttp\Handler\CurlMultiHandler;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
// 创建Guzzle HTTP客户端
$client = new Client([
'handler' => HandlerStack::create(new CurlMultiHandler()),
'headers' => [
'User-Agent' => 'My App Name',
],
'http_errors' => false, // 关闭错误响应自动转换为异常
]);
// 创建一个HandlerStack
$stack = HandlerStack::create();
// 添加缓存中间件
$stack->push(Middleware::cacheExpires());
// 使用刚才配置的HandlerStack创建一个新的客户端
$client = new Client(['handler' => $stack]);
// 发送请求
$response = $client->request('GET', 'http://httpbin.org/cache', [
'headers' => [
'Cache-Control' => 'max-age=3600',
],
]);
// 输出响应体
echo $response->getBody();
这段代码首先引入必要的Guzzle组件,然后配置了一个新的HTTP客户端,并通过HandlerStack
添加了缓存中间件。最后,发送了一个带有Cache-Control
头的GET请求,服务器将根据这个头来决定是否使用缓存响应。
评论已关闭