Guzzle в laravel продолжает загрузку, а не возвращает значения

Я использую паспорт Laravel для аутентификации API. У меня есть два маршрута /api/login и /oauth/token

Поскольку я не могу жестко закодировать свой идентификатор клиента, а логин получает от JS, а параметры и идентификатор клиента жестко запрограммированы внутри метода входа (laravel), я пытаюсь опубликовать значения с помощью Guzzle (6.0) в oauth/token (запросы POST).

Я следил за видео на YouTube, и там это работает, но не у меня. Я использую 5.6, не уверен, какая версия была в видео. Может ли кто-нибудь помочь?

Ниже видео

https://www.youtube.com/watch?v=HGh0cKEVXPI&t=838s

Ниже приведен код

$http = new GuzzleHttp\Client();
$request = $http->post(URI, '/oauth/token', [
    'form_params' => [
        'username' => 'bar',
        'password' => 'xxxxxx',
        'client_id' => 2,
        'grant_type' => 'password',
        'client_secret' => '00000000000000000'
    ]
]);

return $request;

person The Keeper    schedule 07.08.2018    source источник
comment
Могу ли я получить здесь код запроса Guzzle?   -  person Vasim Shaikh    schedule 07.08.2018
comment
Обновлено @VasimVanzara.. не могли бы вы помочь?   -  person The Keeper    schedule 07.08.2018
comment
проверьте свой файл журнала, есть ли какая-либо ошибка? потому что выше идеальный вызов.   -  person Vasim Shaikh    schedule 07.08.2018
comment
Этот ответ решил мою проблему.   -  person Yllndrit    schedule 30.10.2019


Ответы (3)


Вы не получаете ответ, только возвращаете инициализацию guzzle $request, поэтому добавьте getBody()

   $http = new GuzzleHttp\Client();
    $request = $http->post(URI, '/oauth/token', [
        'form_params' => [
            'username' => 'bar',
            'password' => 'xxxxxx',
            'client_id' => 2,
            'grant_type' => 'password',
            'client_secret' => '00000000000000000'
        ]
    ]);

    return $request->getBody();
person Leo    schedule 07.08.2018
comment
Я считаю, что возврат должен быть (string) $request->getBody();. - person Hieu Le; 07.08.2018

Я думаю, вы пытаетесь запросить встроенный сервер. Итак, вы пытаетесь отправить запрос на два сервера. Это будет работать.

Например, сервер localhost:8000 и localhost:9000.

Используйте эту команду

подача php artisan

обслуживание php-мастера --port=9000

Спасибо.

person Manoj kumar    schedule 21.03.2020

Сначала вы должны проверить статус, чтобы убедиться, что все в порядке, используя

$request->getStatusCode(); 

Вы можете получить ответ по

$request->getBody();

вы также можете увидеть полную документацию по использованию GuzzulHttp здесь http://docs.guzzlephp.org/en/stable/

person Dev_meno    schedule 07.08.2018