Вход

Если у вас возникли проблемы, пожалуйста, дайте мне знать, отправив электронное письмо на evgeniy@y-ea.ru. Спасибо!

Забыли пароль или не зарегестрированны?

Отправка http запросов с помощью библиотеки GuzzleHttp на laravel

Evgeniy / 11 июля 2022 / Опубликовано в Блог
Отправка http запросов с помощью библиотеки GuzzleHttp на laravel

Отправляем обычный post запрос.

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'http://www.example.com/user/create', [

    'form_params' => [

        'email' => 'test@gmail.com',

        'name' => 'Test user',

        'password' => 'testpassword',

    ]

]);

POST запрос с прикрепленным файлом files

$response = $client->request('POST', 'http://www.example.com/files/post', [

    'multipart' => [

        [

            'name'     => 'file_name',

            'contents' => fopen('/path/to/file', 'r')

        ],

        [

            'name'     => 'csv_header',

            'contents' => 'First Name, Last Name, Username',

            'filename' => 'csv_header.csv'

        ]

    ]

]);

Использование глаголов REST с параметрами

// PUT
$client->put('http://www.example.com/user/4', [

    'body' => [

        'email' => 'test@gmail.com',

        'name' => 'Test user',

        'password' => 'testpassword',

    ],

    'timeout' => 5

]);

// DELETE
$client->delete('http://www.example.com/user');

Асинхронные(Async) POST запросы

Полезно при долгих отправок с сервера или что бы не дожидаться ответа от сервера на который шлем запрос.

$client = new \GuzzleHttp\Client();

$promise = $client->requestAsync('POST', 'http://www.example.com/user/create', [

    'form_params' => [

        'email' => 'test@gmail.com',

        'name' => 'Test user',

        'password' => 'testpassword',

    ]

]);

$promise->then(

    function (ResponseInterface $res) {

        echo $res->getStatusCode() . "\n";

    },

    function (RequestException $e) {

        echo $e->getMessage() . "\n";

        echo $e->getRequest()->getMethod();

    }

);

Заголовки | headers

Согласно документации , вы модете установить заголовки(headers):

// Установка различных заголовков в запросе/p>

$client->request('GET', '/get', [

    'headers' => [

        'User-Agent' => 'testing/1.0',

        'Accept'     => 'application/json',

        'X-Foo'      => ['Bar', 'Baz']

    ]

]);

Дополнительная информация для отладки

Если вам нужна более подробная информация, вы можете использовать опцию отладки, подобную этой:

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'http://www.example.com/user/create', [

    'form_params' => [

        'email' => 'test@gmail.com',

        'name' => 'Test user',

        'password' => 'testpassword',

    ],

    // если вы хотите получить больше информации в запросе

    'debug' => true

]);

Документация более подробно описывает новые возможности.

 


Комментарии отсутствуют

Новый комментарий

Имя:
:
Для редактирования комментария осталось 10 минут
TOP

Оставить заявку