Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТСИ / Пояснительная записка_ТСИ_Сафронова.doc
Скачиваний:
12
Добавлен:
18.02.2016
Размер:
2.21 Mб
Скачать
  1. Разработка 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-службы

Соседние файлы в папке ТСИ