Guzzle是一个PHP HTTP客户端,它使发送HTTP请求变得容易,与web服务集成也变得简单。
官网的例子:
$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.github.com/user', [
'auth' => ['user', 'pass']
]);
echo $res->getStatusCode();
// "200"
echo $res->getHeader('content-type')[0];
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...'
// Send an asynchronous request.
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
$promise = $client->sendAsync($request)->then(function ($response) {
echo 'I completed! ' . $response->getBody();
});
$promise->wait();
Guzzle客户端使用处理程序和中间件系统发送HTTP请求。
处理函数接受一个Psr\Http\Message\RequestInterface和请求选项数组,并返回一个GuzzleHttp\Promise\Promise einterface,该接口由一个Psr\Http\Message\ResponseInterface实现,或在异常情况下被拒绝。
您可以使用客户端构造函数的处理程序选项向客户端提供自定义处理程序。Guzzle使用的几个请求选项要求特定的中间件封装客户端使用的处理程序,理解这一点很重要。通过在GuzzleHttp\HandlerStack::create(可调用的$handler = null)静态方法中包装处理程序,您可以确保为客户端提供的处理程序使用默认的中间件。
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
$handler = new CurlHandler();
$stack = HandlerStack::create($handler); // Wrap w/ middleware
$client = new Client(['handler' => $stack]);
中间件通过在生成响应的过程中调用处理程序来增强处理程序的功能。中间件被实现为具有以下形式的高阶函数。
use Psr\Http\Message\RequestInterface;
function add_header($header, $value)
{
return function (callable $handler) use ($header, $value) {
return function (
RequestInterface $request,
array $options
) use ($handler, $header, $value) {
$request = $request->withHeader($header, $value);
return $handler($request, $options);
};
};
}
Demo:
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
use GuzzleHttp\Client;
$stack = new HandlerStack();
$stack->setHandler(new CurlHandler());
$stack->push(add_header('X-Foo', 'bar'));
$client = new Client(['handler' => $stack]);
参考资料:
http://docs.guzzlephp.org/en/stable/overview.html
深入了解AES 256 GCM Shadowsocks如何在路由器上设置VPNChatGPT 已开放对小火箭的支持,让你轻松无压力畅玩(小火箭可以在 ChatGPT 上使用吗)AX3600安装v2ray教程lede支持v2ray:安装配置及常见问题解决21个最好的Chrome扩展: 提高你的工作效率小飞机Shadowsocks下载指南全面指南:45.77.88.195.vultr.com.25564v2ray在OpenWrt系统中的优化配置指南Clash for Windows自定义规则教程与常见问题解答中华人民共和国网络安全法与翻墙详解在Windows上使用Shadowsocks:安装、配置和常见问题解答高速稳定 Hysteria 协议机场狗狗加速怎么样?支持免费试用,不限制设备数谷歌云 定时开机 – 完整配置指南快喵VPN加速器的完整指南机场测速 [SS/SSR/V2Ray/Trojan] 【移动】纯测速图 更新中2024年优质机场测评与推荐|稳定|性价比 | 2024年下半年优秀VPNClash Verge 新手教程︱替代Clash for Windows的翻墙插件白月光机场发布旧不限时流量包套餐调整通知老牌 V2ray 机场推荐:V2Club 机场怎么样?