Saltar al contenido

Hacer solicitudes HTTP DESDE Laravel a una API externa

Este team redactor ha estado mucho tiempo buscando la resolución a tu interrogante, te ofrecemos la respuestas de modo que nuestro deseo es que te resulte de mucha ayuda.

Solución:

Basado en una respuesta de una pregunta similar aquí: https://stackoverflow.com/a/22695523/1412268

Echa un vistazo a Guzzle

$client = new GuzzleHttpClient();
$res = $client->get('https://api.github.com/user', ['auth' =>  ['user', 'pass']]);
echo $res->getStatusCode(); // 200
echo $res->getBody(); // { "type": "User", ....

Podemos usar el paquete Guzzle en Laravel, es un cliente PHP HTTP para enviar solicitudes HTTP.

Puedes instalar Guzzle a través de composer

composer require guzzlehttp/guzzle:~6.0

O puede especificar Guzzle como una dependencia en el composer.json existente de su proyecto


   "require": 
      "guzzlehttp/guzzle": "~6.0"
   

Código de ejemplo en laravel 5 usando Guzzle como se muestra a continuación,

use GuzzleHttpClient;
class yourController extends Controller {

    public function saveApiData()
    {
        $client = new Client();
        $res = $client->request('POST', 'https://url_to_the_api', [
            'form_params' => [
                'client_id' => 'test_id',
                'secret' => 'test_secret',
            ]
        ]);
        echo $res->getStatusCode();
        // 200
        echo $res->getHeader('content-type');
        // 'application/json; charset=utf8'
        echo $res->getBody();
        // "type":"User"...'

¿Solo desea llamar a una URL externa y usar los resultados? PHP hace esto de forma inmediata, si estamos hablando de una simple solicitud GET a algo que sirve JSON:

$json = json_decode(file_get_contents('http://host.com/api/stuff/1'), true);

Si desea realizar una solicitud de publicación, es un poco más difícil, pero hay muchos ejemplos de cómo hacerlo con curl.

Así que supongo que la pregunta es; exactamente, que es lo que quieres?

Tienes la posibilidad compartir esta noticia si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *