Получение ошибки 401 при получении погоды из OpenWeatherMap с использованием C # - PullRequest
0 голосов
/ 04 апреля 2019

Ниже приведен мой код веб-API. Я получаю исключение System.Net.WebException (удаленный сервер возвратил ошибку: (401) Несанкционированный.), Когда я передаю город в URL-адресе API.

[HttpGet]
public string GetWeatherReport(string cityName)
{
    string json = string.Empty;
    string createRequest = "http://api.openweathermap.org/data/2.5/weather?q=" + cityName + "&mode=xml&units=metric&appid=APIKEY";

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(createRequest);
    request.UseDefaultCredentials = true;
    request.PreAuthenticate = true;
    request.Credentials = CredentialCache.DefaultCredentials;
    try
    {
        using (HttpWebResponse httpWebResponse = (HttpWebResponse)request.GetResponse() as HttpWebResponse)
        {
            System.IO.StreamReader streamReader = new System.IO.StreamReader(httpWebResponse.GetResponseStream());
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings();
            jsonSerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
            string data  = streamReader.ReadToEnd();

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(data);
            json = JsonConvert.SerializeXmlNode(doc).Replace("@", "");
        }
    }
    catch (Exception ex)
    {
        throw;
    }
    return json;
}

1 Ответ

0 голосов
/ 04 апреля 2019

Согласно OpenWeatherMaps FAQ по ошибкам 401, у них есть следующее:


Вы можете получить ошибку 401 в следующих случаях:

  • Вы не сделалиукажите свой ключ API в запросе API.
  • Вы используете неверный ключ API в запросе API.Пожалуйста, проверьте свой правильный ключ API в личном кабинете.
  • У вас БЕСПЛАТНАЯ подписка и попытайтесь получить доступ к нашим платным сервисам (например, API для 16-дневного / ежедневного прогноза, любые исторические данные о погоде, Карты погоды 2.0,так далее).Пожалуйста, проверьте свой тариф в личном кабинете и обратите внимание на наши цены и условия.

Начиная с 9 октября 2015 года нашему API требуется действительный APPID для доступа.Обратите внимание, что это означает , а не , что означает, что наш API доступен только для подписки - пожалуйста, уделите минуту, чтобы зарегистрировать учетную запись FREE для получения ключа.

Для разработчиков FOSS: Мы приветствуем бесплатное программное обеспечение с открытым исходным кодом и готовы помочь вам.Если вы хотите использовать данные OWM в своем бесплатном программном приложении, пожалуйста, зарегистрируйте ключ API и подайте заявку, описывающую ваше приложение и зарегистрированный ключ API.OWM рассмотрит ваши ограничения на доступ к вашему запросу, если они используются в приложении с открытым исходным кодом.


Судя по всему, вы предоставляете ключ API, и конкретные данные, которые вы пытаетесь получить, являются частьюбесплатное предложение, я бы дважды проверил ваш ключ API, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...