Книга: Программирование мобильных устройств на платформе .NET Compact Framework
Вызов Web-службы с устройства средствами .NET Compact Framework
Вызов Web-службы с устройства средствами .NET Compact Framework
НА ЗАМЕТКУ
Для выполнения кода на физическом или эмулированном устройстве используется логическая машина отличная от машины разработки, даже если эмулятор и выполняется на той же физической машине, что и ваш Web-сервер, имена соответствующих машин будут разными. Вследствие этого вы не можете использовать URL //localhost/WebService1, чтобы задать с устройства местоположение Web-службы; вы должны использовать фактическое имя хост-машины (например, //myDevMachine1/WebService) так, как вызывали бы Web-службу с другого ПК.
Вызов Web-службы с устройства работает почти точно так же, как и вызов, выполняемый с настольного компьютера или сервера. Чтобы вызвать Web-службу с мобильного устройства, потребуется выполнить следующие действия:
1. Запустите Visual Studio .NET и создайте проект C# Smart Device Application.
2. Выберите в меню Project (Проект) пункт Add Web Reference (Добавить Web- ссылку). В результате этого на экране отобразится диалоговое окно, где вы можете найти Web-службу, на которую хотите сослаться. Введите URL-адрес Web- службы, которую вы создали перед этим (например, http://MyWebServer/ WebService1/Service1.asmx).
3. Перейдя в диалоговое окно Add Web Reference, введите в текстовом окне Web Reference Name (Имя Web-ссылки) текст MyTestWebService, а затем щелкните на кнопке Add Reference (Добавить ссылку). В результате этого будет загружен WSDL-документ, описывающий Web-службу, а в вашем проекте создан локальный прокси-класс, благодаря чему вы сможете легко вызвать Web-службу.
4. Поместите на форму вашего приложения кнопку и дважды щелкните на ней. В результате этого фокус ввода переместится в код обработчика событий кнопки.
5. Введите следующий код:
//Создать экземпляр локального прокси-объекта
MyTestWebService.Service1 myWebService;
myWebService = new MyTestWebService.Service1();
//Указать локальному прокси-объекту на необходимость вызова Web-службы
int sum = myWebService.AddTwoNumbers(2, 3);
//Отобразить результат вызова Web-службы!
System.Windows.Forms.MessageBox.Show(sum.ToString());
6. Запустите приложение и вызовите Web-службу.
Предыдущий пример соответствует тестированию синхронного вызова Web-служ- бы. Синхронные вызовы легко тестировать и отлаживать, но в реальных сценариях мы почти всегда предпочитаем вызывать Web-службу в асинхронном режиме. Автоматически сгенерированный класс обладает встроенными возможностями, которые позволяют это сделать. Для вызова Web-службы в асинхронном режиме следует вызвать метод myWebService.BeginAddTwoNumbers(…параметры…). Для каждого метода Web-службы в локальном прокси-классе предусмотрен метод Begin*, предназначенный для асинхронного вызова Web-службы, и метод End*, предназначенный для получения результатов этого вызова.
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Улучшенный протокол локальных соединений (XNET)
- Chapter 16. Commercial products based on Linux, iptables and netfilter
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- NETMAP target
- Системные вызовы и драйверы устройств
- Глава 8 Дополнительные службы
- Internet Service Providers who use assigned IP addresses
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 1.5 Структура драйвера устройства Windows
- 5.7 Устройства NAS под управлением Windows и моментальные снимки
- Определение необходимого системного вызова