Создание клиентской программы, обращающейся к Web-службе
Клиентская программа, которая обращается к Web-службе, может быть бого вида Сейчас мы создадим простую консольную клиентскую программу для тестирования только что созданной Web-службы на основе библиот шаблонных классов ATL [Эта клиентская программа имеется в каталоге ATLServerWebClient].
- Выберите следующие пункты меню: File › New › Project (Файл › Создать › Проект)
- В дереве Project Types (Типы проектов) откройте узел Visual C++ Projects (Проекты Visual C++)
- В окне Templates (Шаблоны) выберите Win32 Project (Проект Win32). В результате появится ATL Server Project Wizard (Мастер создания проектов на основе ATL Server)
- В качестве имени проекта введите ATLServerWebChent
- Введите подходящее имя каталога, предназначенного для хранения проекта
- Для запуска Мастера создания проектов Win32 (Win32 Project Wizard) щелкните на кнопке ОК
- На вкладке Application Settings (Параметры приложений) Мастера создания проектов Win32 (Win32 Project Wizard) выберите переключатель Console application (Консольное приложение)
- Щелкните на кнопке Finish (Готово).
- В Solution Explorer (Поиск решения) щелкните правой кнопкой мыши на узле ATLServerWebChent. В контекстном меню выберите пункт Add Web Reference (Добавить Web-ссылку)
- В диалоговом окне Add Web Reference (Добавить Web-ссылку) укажите унифицированный указатель информационного ресурса (URL) для ATLServerWeb.disco [При создании проекта Web-службы на основе библиотеки шаблонных классов ATL файл обнаружения был автоматически размешен в соответствующем виртуальном каталоге информационного сервера Internet (IIS) ] – файла обнаружения Web-службы на основе библиотеки шаблонных классов ATL (рис 12 26). Затем щелкните на кнопке Add Reference (Добавить ссылку). В клиентский проект будет добавлен файл исходного кода ATLServerWeb.h, который реализует объект – заместитель, предназначенный для вызова методов Web-службы [При изменении серверного интерфейса это действие надо повторить чтобы сгенерировать для клен-та новый заместитель].
- Откройте файл исходного кода ATLServerWebClient.cpp и вставьте в него код, выделенный полужирным шрифтом.
#include "stdafx.h" #define _WIN32_WINNT 0x0400 // нужна _WIN32_WINNT >= 0x0400 #include "ATLServerWeb.h" // необходимо обратиться к прокси-серверу int _tmain(int argc, _TCHAR* argv[]) { Colnitialize(NULL); // ПУСТОЙ УКАЗАТЕЛЬ ATLServerWebService::CATLServerWebServiceTO service; // служба CComBSTR bstrInput(L"ATL Web Service"); // Web-служба на основе ATL CComBSTR bstrOutput; service.HelloWorId(bstrlnput, SbstrOutput); // служба wprintf( L"HelloWorld returned bstrOutput: %s\n", bstrOutput); return 0; }
Рис. 12.26. Добавьте Web-ссылку в ATLServerWeb disco
- Создайте проект клиента Web-службы на основе библиотеки шаблонных классов ATL и запустите его так, как это обычно делается Затем запустите программ, и тогда вы сможете увидеть следующий результат:
HelloWorld returned bstrOutput Hello ATL Web Service!