zelenin/http-client

兼容PSR-18的HTTP客户端,支持中间件

4.0.1 2018-10-31 16:54 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:14:52 UTC


README

兼容PSR-18的低级HTTP客户端,支持中间件。

安装

Composer

安装此扩展的首选方法是使用 Composer

运行以下命令之一

php composer.phar require zelenin/http-client "~4.0.0"

或将以下内容添加到 composer.json 文件的 require 部分中

"zelenin/http-client": "~4.0.0"

require

使用方法

use Zelenin\HttpClient\ClientFactory;
use Zend\Diactoros\Request;
use Zend\Diactoros\Uri;

$client = (new ClientFactory())->create();

$request = new Request(new Uri('https://example.com/'), 'GET');
$response = $client->sendRequest($request);

带有中间件堆栈的完整示例

use Zelenin\HttpClient\Middleware\Cookie\CookieRequest;
use Zelenin\HttpClient\Middleware\Cookie\CookieResponse;
use Zelenin\HttpClient\Middleware\Cookie\FileStorage;
use Zelenin\HttpClient\Middleware\Deflate;
use Zelenin\HttpClient\Middleware\UserAgent;
use Zelenin\HttpClient\MiddlewareClient;
use Zelenin\HttpClient\RequestConfig;
use Zelenin\HttpClient\Transport\CurlTransport;
use Zend\Diactoros\Request;
use Zend\Diactoros\ResponseFactory;
use Zend\Diactoros\StreamFactory;
use Zend\Diactoros\Uri;

$streamFactory = new StreamFactory();
$responseFactory = new ResponseFactory();

$cookieStorage = new FileStorage('/tmp/http-client/cookies.storage');

$client = new MiddlewareClient([
    new CookieRequest($cookieStorage),
    new UserAgent(sprintf('HttpClient PHP/%s', PHP_VERSION)),
    new Deflate($streamFactory),
    new CookieResponse($cookieStorage),
    new CurlTransport($streamFactory, $responseFactory, new RequestConfig()),
], $responseFactory);

$request = new Request(new Uri('https://example.com/'), 'GET');
$response = $client->sendRequest($request);

作者

Aleksandr Zelenin,电子邮件:aleksandr@zelenin.me