Peticiones HTTP con php usando Guzzle

¿Qué es Guzzle?

Guzzle es un cliente HTTP PHP que hace que sea fácil de enviar solicitudes HTTP para la integración con servicios web.

  • Interfaz sencilla para la construcción de cadenas de consulta, las peticiones POST, la transmisión de grandes archivos, streaming de descargas de gran tamaño, el uso de cookies HTTP, la carga de datos JSON, etc …
  • Puede enviar ambas peticiones síncronas y asíncronas utilizando la misma interfaz.
  • Utiliza PSR-7 interfaces para peticiones, respuestas y arroyos. Esto le permite utilizar otros PSR-7 bibliotecas compatibles con Guzzle.
  • Los resúmenes de distancia del transporte HTTP subyacente, lo que le permite escribir código de medio ambiente y transporte agnóstico; es decir, ninguna dependencia duro en cURL, PHP arroyos, tomas de corriente, o no bloqueo bucles de eventos.
  • sistema de middleware le permite aumentar y componer el comportamiento del cliente.

Instalación

Puede descargarlo directamente desde su repositorio en github. En este caso voy a utilizar composer.

Instalamos composer.

curl -sS https://getcomposer.org/installer | php

Luego ejecutamos.

php composer.phar require guzzlehttp/guzzle

Metodo GET

Creamos un archivo llamado peticion.php

set_time_limit(0);
date_default_timezone_set('America/Lima');
require("vendor/autoload.php");
 
$client = new GuzzleHttp\Client();
$response = $client->request('GET', "http://localhost/api/v1",[
    'exceptions' => false, // Para que no muestre Excepciones
    //'verify' => false, //si no deseas verificar certificado.
    //'verify' => './cacert.pem', //si deseas verificar certificado.
    //'auth' => array('user', 'pass'),
    'headers' => [
        'User-Agent' => 'testing/1.0',
        'Accept'     => 'application/json',
        'X-Foo'      => ['Bar', 'Baz']
    ]
]);
$response->getStatusCode(); // devuelve el Código de estado HTTP
$response->getBody(); // Devuelve el contenido de la respuesta.

Metodo POST

set_time_limit(0);
date_default_timezone_set('America/Lima');
require("vendor/autoload.php");
 
$client = new GuzzleHttp\Client();
$response = $client->request('POST', 'http://localhost/api/v1', [
    'form_params' => [
        'field_name' => 'abc',
        'other_field' => '123',
        'nested_field' => [
            'nested' => 'hello'
        ]
    ]
]);

Todos los métodos

$response = $client->get('http://localhost/api/v1/get');
$response = $client->delete('http://localhost/api/v1/delete');
$response = $client->head('http://localhost/api/v1/get');
$response = $client->options('http://localhost/api/v1/get');
$response = $client->patch('http://localhost/api/v1/patch');
$response = $client->post('http://localhost/api/v1/post');
$response = $client->put('http://localhost/api/v1/put');
(Visited 4.666 times, 1 visits today)
Puedes saltar al final y dejar una respuesta. Hacer ping no está permitido actualmente.