= &FHttpModule::Get();
const auto Request = Module->CreateRequest();
Request->OnProcessRequestComplete().BindUObject(this, &ThisClass::OnPostReceivedAuthorization);
Request->SetURL("https://api.amazon.com/auth/o2/create/codepair?response_type=device_code&client_id=amzn1.application-oa2-client.5e0256cabe");
Request->SetVerb("POST");
Request->SetHeader("Host","api.amazon.com");
Request->SetHeader("Content-Type","application/x-www-form-urlencoded");
Request->ProcessRequest();
В чём ошибка и почему в респонсе я получаю error: missing parameter: client_id?
Думаю, причина в том, что ты посылаешь POST, а параметры почему-то закодировал в URL
Вот я и думаю, их надо совать в контент что ли...
Если тебе нужно отправить это как POST, то да
Допустим, если хэдер Host: api.amazon.com Мы задаём командой: Request->SetHeader("Host","api.amazon.com"); То для вот этой части: response_type=device_code&client_id=amzn1.application-oa2-client.5e0256cabe&scope=profile Надо писать так? Request->SetContentAsString(" { "response_type": "device_code", "client_id": "amzn1.application-oa2-client.5e0256cabe" } "); Так тоже пробовал, всё равно он на client_id ругался. И непонятно, куда засовывать /auth/o2/create/codepair из первой строки: POST /auth/o2/create/codepair HTTP/1.1
Скорее я бы ожидал примерно так: Request->SetContentAsString(TEXT("response_type=device_code&client_id=amzn1.application-oa2-client.5e0256cabe"));
Спасибо, уже лучше, на client_id ругаться перестал, теперь ругается, на scope. Но я не понял, как прописать его в параметр контента: client_id=amzn1.12345&scope=profile Если он имеет вот такой вид: profile: { "username": "name", "password": "12345", "user_id": "XXXXX" }
Если ты хочешь засылать параметры в виде JSON, тебе нужно указать соответствующий Content-Type и засетить сериализованный в строку JSON в Content для запроса
Обсуждают сегодня