Пример #1
0
        public void HttpGetRequestTest()
        {
            LittleLogger logger =
                new LittleLogger("../../Test_Data/HttpGetRequestTest/log.txt");
            WeatherService wService = new WeatherService(logger);
            
            // Результат запроса
            string str1 = wService.Request("http://yandex.ru/");
            string str2 = wService.Request("http://news.yandex.ru/");

            // Сохраним результат запроса в файл
            using (StreamWriter writer =
                new StreamWriter("../../Test_Data/HttpGetRequestTest/request_1.htm"))
            {
                writer.Write(str1);
            }
            using (StreamWriter writer =
                new StreamWriter("../../Test_Data/HttpGetRequestTest/request_2.htm"))
            {
                writer.Write(str2);
            }

            // Содержат ли результат запроса заданные элементы
            StringAssert.Contains(str1, "https://disk.yandex.ru/");
            StringAssert.Contains(str2, "Яндекс.Новости: Главные новости");
        }              
Пример #2
0
        // Метод для получения погодных данных с Yahoo! Weather
        // для города targetCity         
        public Dictionary<string, string> getYahooWeather(City targetCity)
        {
            // Используя API Yahoo! Weather (https://developer.yahoo.com/weather/),
            // делаем запрос на погодный сервис методом GET,
            // где w - ID города, u - единицы измерения.
            // Получаем ответ в виде XML.
            // Парсим XML строку, чтобы найти дату, температуру,
            // атм. давление, влажность воздуха, хар. ветра, облачность
            WeatherService wService = new WeatherService(Logger);
            XElement root = XElement.Parse(
                wService.Request("http://weather.yahooapis.com/forecastrss?w="
                                      + targetCity.IDList["Yahoo"] + "&u=c"));

            try
            {
                wService.WeatherData = new Dictionary<string, string>();
                // Дата            
                wService.WeatherData.Add("Date",
                    root.Elements().ElementAt(0).Elements("item").Elements().ElementAt(5).Attribute("date").Value);
                // Температура
                wService.WeatherData.Add("Temperature",
                    root.Elements().ElementAt(0).Elements("item").Elements().ElementAt(5).Attribute("temp").Value
                    + "C");
                // Атмосферное давление
                wService.WeatherData.Add("Pressure",
                    root.Elements().ElementAt(0).Elements().ElementAt(9).Attribute("pressure").Value + "millibars");
                // Влажность воздуха
                wService.WeatherData.Add("Wetness",
                    root.Elements().ElementAt(0).Elements().ElementAt(9).Attribute("humidity").Value + '%');
                // Ветер
                wService.WeatherData.Add("Wind", "Direction: " +
                    root.Elements().ElementAt(0).Elements().ElementAt(8).Attribute("direction").Value + "deegres. | "
                        + root.Elements().ElementAt(0).Elements().ElementAt(8).Attribute("speed").Value + "km/h");
                // Облачность
                wService.WeatherData.Add("Clouds",
                    root.Elements().ElementAt(0).Elements("item").Elements().ElementAt(5).Attribute("text").Value);
            }
            catch (Exception exception)
            {
                // Делаем запись в лог файл                
                Logger.WriteLog(System.DateTime.Now.ToString()
                    + " "
                    + exception.TargetSite.ToString()
                    + " "
                    + exception.Message);                
            }

            return wService.WeatherData;
        }
Пример #3
0
        // Метод для получения погодных данных с Yandex Погода
        // для города targetCity          
        public Dictionary<string, string> getYandexWeather(City targetCity)
        {
            // Используя API Яндекс Погода,
            // делаем запрос на погодный сервис методом GET,
            // http://export.yandex.ru/weather-ng/forecasts/city.xml
            // где city - ID города.
            // Получаем ответ в виде XML.
            // Парсим XML строку, чтобы найти дату, температуру,
            // атм. давление, влажность воздуха, хар. ветра, облачность
            WeatherService wService = new WeatherService(Logger);
            XElement root = XElement.Parse(
                wService.Request("http://export.yandex.ru/weather-ng/forecasts/"
                                      + targetCity.IDList["Yandex"] + ".xml"));

            try
            {
                wService.WeatherData = new Dictionary<string, string>();
                // Дата            
                wService.WeatherData.Add("Date",
                    root.Elements().ElementAt(0).Elements().ElementAt(3).Value.Insert(10, " "));
                // Температура
                wService.WeatherData.Add("Temperature",
                    root.Elements().ElementAt(0).Elements().ElementAt(4).Value + 'C');
                // Атмосферное давление
                wService.WeatherData.Add("Pressure",
                    root.Elements().ElementAt(0).Elements().ElementAt(24).Value + "мм. рт. столба");
                // Влажность воздуха
                wService.WeatherData.Add("Wetness",
                    root.Elements().ElementAt(0).Elements().ElementAt(23).Value + '%');
                // Ветер
                wService.WeatherData.Add("Wind", "Направление: " +
                    root.Elements().ElementAt(0).Elements().ElementAt(21).Value + " | "
                        + root.Elements().ElementAt(0).Elements().ElementAt(22).Value + "м/c");
                // Облачность
                wService.WeatherData.Add("Clouds",
                    root.Elements().ElementAt(0).Elements().ElementAt(9).Value);
            }
            catch (Exception exception)
            {
                // Делаем запись в лог файл                
                Logger.WriteLog(System.DateTime.Now.ToString()
                    + " "
                    + exception.TargetSite.ToString()
                    + " "
                    + exception.Message);                
            }

            return wService.WeatherData;
        }