Я пытаюсь использовать google maps geolocation api (https://developers.google.com/maps/documentation/geolocation/intro) в C# (.net 4.6.1). Я установил ключ сервера и включил API геолокации Google Maps в менеджере api. Вот мой код:403 ошибка с google geolocation api в C#
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsJsonAsync("https://www.googleapis.com/geolocation/v1/geolocate", new { key = "keyvalue" });
return await response.Content.ReadAsStringAsync();
}
Я получаю ошибку 403. Вот полный ответ:
{
"error": {
"errors": [{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
Я знаю, что они ключевое значение правильно, и я знаю, что я позволил апи. Я также знаю, что я не достиг дневного лимита, потому что консоль Google перечисляет мое использование как ноль в течение дня. Кто-нибудь видит проблему с моим кодом или какие-либо другие предложения? Я должен неправильно отправить ключ, но я не знаю, где ошибка в моем коде.
Update
Правильный код:
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsJsonAsync("https://www.googleapis.com/geolocation/v1/geolocate?key=keyvalue", "");
//Or client.PostAsync could be used this way:
//var response = await client.PostAsync("https://www.googleapis.com/geolocation/v1/geolocate?key=keyvalue", new StringContent("", Encoding.UTF8, "application/json"));
return await response.Content.ReadAsStringAsync();
}
я проходил ключ как объект JSON вместо того, чтобы ключ в URL.
Как ошибочный ответ предполагает, что вы превышаете неаутентифицированное использование, ваши уверен, что ваш запрос посылает ключ правильно? – antonio
Я уверен, что у меня есть правильный ключ, но я не знаю, как подтвердить, что ключ правильно отправлен. – joeshmoe301