Я пытаюсь сделать POST-запрос к Amazon API, чтобы получить токен для входа в систему с Amazon.Я делаю это с Xamarin.
Что мне нужно, так это ответ Амазонки с токеном.Я пробовал это в соответствии с этим руководством:
Связывание на основе кода (CBL) для устройств Amazon Alexa
При использовании Postman все работает нормально, я получаю правильный ответ.Когда я пытаюсь реализовать это в своем проекте Xamarin, я всегда получаю сообщение об ошибке:
«error_description»: «Тип контента не поддерживается сервером авторизации.», «Error»: «invalid_request»
Вот мой код:
client = new HttpClient();
client.BaseAddress = new Uri("https://api.amazon.com/auth/O2/create/codepair");
string contentRaw = "response_type=device_code&client_id=hereIsTheClient_ID&scope=alexa:all";
var content = new StringContent(contentRaw, Encoding.UTF8, "application/x-www-form-urlencoded");
string uriEncoded = Uri.EscapeDataString(contentRaw);
HttpResponseMessage response = await client.PostAsync("https://api.amazon.com/auth/O2/create/codepair", content);
var result = await response.Content.ReadAsStringAsync();
return result;
Вот что я сделал с помощью JSON, но я все еще получаю «Content-Type не поддерживается сервером авторизации»
O2authRequest o2AuthRequest = new O2authRequest();
o2AuthRequest.response_type = "device_code";
o2AuthRequest.client_id = "amzn1.application-oa2-client....";
o2AuthRequest.scope = "alexa:all";
o2AuthRequest.scope_data = new Scope_Data();
o2AuthRequest.scope_data.productID = "MyAppID";
o2AuthRequest.scope_data.productInstanceAttributes = new Productinstanceattributes();
o2AuthRequest.scope_data.productInstanceAttributes.deviceSerialNumber = "12345";
string contentRaw = JsonConvert.SerializeObject(o2AuthRequest);
var content = new StringContent(contentRaw, Encoding.UTF8, "application/json");
string uriEncoded = Uri.EscapeDataString(contentRaw);
HttpResponseMessage response = await client.PostAsync("https://api.amazon.com/auth/O2/create/codepair", content);
var result = await response.Content.ReadAsStringAsync();