private async void Form1_Load(object sender, EventArgs e) { WebRequest request = WebRequest.Create("http://api.openweathermap.org/data/2.5/weather?q=Omsk&APPID=1fb63a10a9c1ba5eee8d4615108eda44"); request.Method = "POST"; request.ContentType = "application/x-www-urlencoded"; WebResponse response = await request.GetResponseAsync(); using (Stream s = response.GetResponseStream()) //получаем поток ответа и записываем в строковую переменную { using (StreamReader reader = new StreamReader(s)) { answer = await reader.ReadToEndAsync(); } } response.Close(); OpenWeather.OpenWeather oW = JsonConvert.DeserializeObject <OpenWeather.OpenWeather>(answer); //десериализация класса и преведение к типу Openweather panel1.BackgroundImage = oW.weather[0].Icon; label1.Text = oW.weather[0].main; label2.Text = oW.weather[0].description; label3.Text = "Средняя температура (С): " + oW.main.temp.ToString("0.##"); label6.Text = "Скорость (м/с) :" + oW.wind.speed.ToString(); label7.Text = "Направление: " + oW.wind.deg.ToString(); label4.Text = "Влажность (%): " + oW.main.humidity.ToString(); label5.Text = "Давление (мм): " + ((int)oW.main.pressure).ToString(); label9.Text = "Omsk"; button1.Click += new EventHandler(BTN1_Click); }
private async void BTN1_Click(object sender, EventArgs e) { string City = SelectCity.Text; if (City == String.Empty) { City = "Omsk"; } WebRequest request = WebRequest.Create("https://api.openweathermap.org/data/2.5/weather?q=" + City + "&units=metric&appid=1fb63a10a9c1ba5eee8d4615108eda44"); request.Method = "POST"; request.ContentType = "application/x-www-urlencoded"; WebResponse respons = await request.GetResponseAsync(); using (Stream s = respons.GetResponseStream()) { using (StreamReader reader = new StreamReader(s)) { answer = await reader.ReadToEndAsync(); } } respons.Close(); OpenWeather.OpenWeather oW = JsonConvert.DeserializeObject <OpenWeather.OpenWeather>(answer); panel1.BackgroundImage = oW.weather[0].Icon; label1.Text = oW.weather[0].main; label2.Text = oW.weather[0].description; label3.Text = "Температура: " + oW.main.temp.ToString("0.##") + "*C"; label6.Text = "Скорость: " + oW.wind.speed.ToString() + "m/sek"; label7.Text = "Направление: " + oW.wind.deg.ToString() + "Grad"; label4.Text = "Влажность: " + oW.main.humidity.ToString() + "%"; label5.Text = "Давление: " + ((int)oW.main.pressure).ToString() + "мм ртут. столб."; label9.Text = City; }
//кнопка обновить private async void metroButton2_Click(object sender, EventArgs e) { CheckToConnectWithInternet.IsConnected(); //проверка подключения к интернету CheckToFile.CheckFile(); //проверка существования файла с городами try { WebRequest request = WebRequest.Create("https://api.openweathermap.org/data/2.5/weather?id=" + idTextBox.Text + "&APPID=002ad5987fae2bde5067fd5195691cbc"); //получение данных с сайта методом Post request.Method = "POST"; request.ContentType = "application/x-www-urlencoded"; WebResponse response = await request.GetResponseAsync(); string answer = string.Empty; using (Stream s = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(s)) { answer = await reader.ReadToEndAsync(); } } response.Close(); OpenWeather.OpenWeather oW = JsonConvert.DeserializeObject <OpenWeather.OpenWeather>(answer); //отправка переменных для перевода Variable.description = oW.weather[0].description; Variable.mainWeather = oW.weather[0].main; Variable.WindDeg = oW.wind.deg; if (Variable.isYandexTranslate == true) { //перевод yandex mainLabel.Text = YandexTranslator.Translate(Variable.mainWeather); descriptionLabel.Text = YandexTranslator.Translate(Variable.description); } else { //без перевода mainLabel.Text = CustomTranslate.CustomMainWeather(Variable.mainWeather); descriptionLabel.Text = CustomTranslate.CustomDescription(Variable.description); } //заполнение информацией panel1.BackgroundImage = oW.weather[0].Icon; tempLabel.Text = "Средняя температура в данный момент (°С): " + oW.main.temp.ToString("0.##"); datetimeLabel.Text = "Время получения данных с сервера: " + DateTime.Now.ToString(); countryLabel.Text = oW.name.ToString(); speedLabel.Text = "Скорость ветра (м/с): " + oW.wind.speed.ToString(); pressureLabel.Text = "Атмосферное давление (мм.рт.ст): " + ((int)oW.main.pressure).ToString(); humidityLabel.Text = "Влажность (%): " + oW.main.humidity.ToString(); feels_likeLabel.Text = "Температура по ощущениям (°С): " + oW.main.feels_like.ToString("0.##"); degLabel.Text = CustomTranslate.CustomWindDeg(Variable.WindDeg); ExceptionHandling(); //обработка исключений } catch { MessageBox.Show("Что-то пошло не так", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); mainLabel.Text = "Ошибка"; descriptionLabel.Text = "Ошибка"; pressureLabel.Text = "Ошибка"; humidityLabel.Text = "Ошибка"; speedLabel.Text = "Ошибка"; degLabel.Text = "Ошибка"; countryLabel.Text = "Ошибка"; tempLabel.Text = "Ошибка"; feels_likeLabel.Text = "Ошибка"; } idTextBox.Text = "ID города"; IDInfo.Visible = false; }