#php #laravel #http #http-post #laravel-8
#php #laravel #http #http-сообщение #laravel-8
Вопрос:
У меня проблема со следующим:
- Я создаю API (я новичок в этом)
- С помощью этого API я хочу использовать другой API или веб-сервис
- В Postman я делаю запрос get на URL, и он возвращает НОРМАЛЬНО access_token, но в проекте Laravel он возвращает:
"error" => "unsupported_grant_type".
Это мой код:
use IlluminateSupportFacadesHttp;
$response = Http::withHeaders([
'content-type' => 'application/x-www-form-urlencoded'
])->post('http://url:52904/Token', [
'userName' => 'menganito',
'password' => 'pepito',
'grant_type' => 'password'
]);
dd($response->json());
Я попытался установить ** Laravel Passport **, но пока я не использую базу данных.
Комментарии:
1. Какие параметры вы отправляете в postman и какой API использует?
2. Это больше похоже на проблему типа гранта OAuth2 , чем на проблему Laravel. Пожалуйста, используйте Postman для выполнения запроса POST с теми же
grant_type
и данными, чтобы посмотреть, возвращает ли он тот же результат. Если это так, используемый вами API просто не поддерживает этот тип предоставления (как указано в ошибке).3. В postman я отправляю x-www-form-urlencoded, но если я выберу form-params, вернутся «ошибка» => «unsupported_grant_type»
Ответ №1:
Проблема заключалась в x-www-form-urlencoded.
Это решило мою проблему (asForm)
$response = Http::asForm()->post('http://url.com', [
'userName' => 'user',
'password' => 'pass',
'grant_type' => 'password'
]);
dd($response->json());