Разработка Web-службы
Создадим вес-сервис, который будет обрабатывать посланный ему текст, извлекая из него аббревиатуры, сортируя их, и отправлять результат обработки в виде массива аббревиатур.
Для разработки Web-службы выбрали интегрируемую среду разработки – Microsoft Visual Studio 2008.
Для этого запускаем Microsoft Visual Studio 2008. В окне Начальная страница выполняем команду меню Файл>Создать>Веб-узел. В списке Установленные шаблоны Visual Studio окна Новый веб-узел выбираем Веб-служба ASP.NET. Далее задаём название и место сохранения службы (рис. 2.1).
Рис. 2.1. Создание веб-узла |
Нажимаем OK и открывается стандартный шаблон текста сервиса (рис. 2.2).
Рис. 2.2. Окно кода веб-службы по умолчанию |
Веб-сервис будет получать от приложения строку (string s).
Так как нам необходимо извлечь из текста аббревиатуры, поэтому тест будем считывать посимвольно.
Вначале задаем переменные:
int x, n; // код очередного символа и число символов в абревиатуре
string abr; // абревиатура
string all = " "; // все абревиатуры в одной длинной строке разделенные пробелами
Далее читаем символ. Проверяем его на верхний регистр.:
for (int i = 0; i < s.Length; ++i)
{n = 0;
abr = "";
x = (int)s[i];
while (Char.IsUpper(s[i]))
Если символ с заглавной буквы, то он добавляется к переменной abr, и включается счетчик, который подсчитывает количество символов в переменной abr. Затем считывается следующий символ текста и проверяется на верхний регистр:
{abr += s[i];
n++;
i++;}
Если количество символов в аббревиатуре больше единицы и аббревиатура еще ни разу не входила в переменную all, то она записывается в all:
if ((n > 1) && (all.IndexOf(abr) == -1)) all += abr + " ";
После того, как аббревиатура записана в пременную all, считавается следующий символ текста. Все операции повторяются до тех пор, пока не будет достигнут конец строки s.
Аббревиатуры находятся в строке. Для того, чтобы отсортировать, помещаем их в массив.
string[] ab;
all = all.Trim();
char[] separators = { ' ' };
ab = all.Split(separators);
Для сортировки полученного массива используем метод Sort класса Array:
Array.Sort(ab);
Затем возвращаем отсортированный массив и закрываем метод Abbreviatura (string s):
return ab; }
Подробный код веб-службы предоставлен в Приложении 1.
После того, как код написан, нужно протестировать Web-службу. Для этого выполняем команду меню Отладка>Запуск без отладки. Откроется Web-страница, на которой расположена ссылка на формальное описание структуры Web-сервиса, а также перечислены все методы (функции), поддерживаемые Web-сервисом. В нашем случае указан лишь один метод -Abbreviatura. Его наименование также является гиперссылкой, нажав на которую переходим к Web-странице, позволяющей воспользоваться этим методом (рис. 2.3).
Рис. 2.3. Web-страница с ссылкой на метод Abbreviatura() |
После щелчка мышью на ссылке Abbreviaturaв браузере отображается Web-страница, на которой приведены примеры запросов и ответовSOAPметода (рис. 2.4).
Рис. 2.4. Web-страница примеров запросов и ответовSOAPметода |
Введя значение s(ввели строку: КП по дисциплине ТСИ) и нажав кнопкуЗапуск, получаемXML(SOAP) ответ сервиса со списком аббревиатур:
Рис. 2.5. Тестирование Web-службы |