Documentación de Guzzle

Guzzle es un cliente PHP HTTP que facilita el envío de peticiones HTTP y hace trivial la integración con servicios web.

  • Interfaz sencilla para crear cadenas de consulta, solicitudes POST, transmisión de grandes descargas de gran tamaño, uso de cookies HTTP, carga de datos JSON, etc.
  • Puede enviar peticiones tanto síncronas como asíncronas utilizando la misma interfaz.
  • Utiliza las interfaces de PSR-7 para las solicitudes, las respuestas y los flujos. Esto te permite utilizar otras bibliotecas compatibles con PSR-7 con Guzzle.
  • Abstracta el transporte HTTP subyacente, permitiéndole escribir código agnóstico al entorno y al transporte; es decir, sin depender de cURL, streams de PHP, sockets, o bucles de eventos no bloqueantes.
  • El sistema de middleware permite aumentar y componer el comportamiento del cliente.
$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();

Guía del usuario