我正在尝试在c#(。net 4.6.1)中使用google maps geolocation api(https://developers.google.com/maps/documentation/geolocation/intro)。我已经设置了服务器密钥并在api管理器中启用了Google Maps Geolocation API。这是我的代码:
Plotly
我收到403错误。以下是完整的回复:
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();
}
}
我知道他们的关键值是正确的,我知道我启用了api。我也知道我没有达到每日限制,因为谷歌控制台将当天的使用情况列为零。有没有人看到我的代码有问题或有任何其他建议?我必须错误地发送密钥,但我不知道代码中的错误在哪里。
更新
正确的代码是:
{
"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."
}
我将密钥作为json对象传递,而不是将密钥放在url中。
答案 0 :(得分:1)
您必须将密钥作为参数添加到URL
https://www.googleapis.com/geolocation/v1/geolocate?key=keyValue