예제 #1
0
        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);
        }
예제 #2
0
        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;
        }
예제 #3
0
        //кнопка обновить
        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;
        }