2016-07-21 3 views
0

Я пытаюсь использовать 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.

+0

Как ошибочный ответ предполагает, что вы превышаете неаутентифицированное использование, ваши уверен, что ваш запрос посылает ключ правильно? – antonio

+0

Я уверен, что у меня есть правильный ключ, но я не знаю, как подтвердить, что ключ правильно отправлен. – joeshmoe301

ответ

1

Вы должны добавить ключ в качестве параметра в URL

https://www.googleapis.com/geolocation/v1/geolocate?key=keyValue 
Смежные вопросы