Документация Guzzle

Guzzle - это PHP HTTP клиент, который упрощает отправку HTTP запросов и упрощает интеграцию с веб-сервисами.

  • Простой интерфейс для построения строк запросов, POST-запросов, потоковой загрузки больших объемов, потоковой загрузки больших объемов, использования HTTP-куки, загрузки JSON-данных. загрузки, потоковой передачи больших загрузок, использования HTTP cookies, загрузки JSON данных, и т.д..
  • Может отправлять как синхронные, так и асинхронные запросы, используя один и тот же интерфейс.
  • Использует интерфейсы PSR-7 для запросов, ответов и потоков. Это позволяет вам использовать другие библиотеки, совместимые с PSR-7, вместе с Guzzle.
  • Абстрагируется от базового HTTP транспорта, позволяя вам писать код, не зависящий от среды и транспорта; т.е. нет жесткой зависимости от cURL, PHP-потоков, сокетов или неблокирующих циклов событий.
  • Система Middleware позволяет дополнять и компоновать поведение клиента.
$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();

Руководство пользователя