Статьи

Создание и использование веб-сервисов .NET за 5 простых шагов

Эта статья была написана в 2002 году и остается одной из наших самых популярных публикаций. Если вы хотите больше узнать о .NET, вы можете найти эту недавнюю статью о комбинировании LESS с ASP.NET очень интересной.

В интернете появился новый игрок на сцене. Он был окружен большим количеством ажиотажа — и даже некоторыми рекламными роликами! По-видимому, эта новая «технология следующего поколения» изменит способ ведения бизнеса в Интернете. Похоже, что в скором времени компании, их приложения или программное обеспечение и любые устройства с подключением к Интернету легко смогут общаться и предоставлять услуги друг другу независимо от платформы или языка. Звучит революционно!

Итак, что именно открывает эти безграничные линии связи? Веб-сервисы, вот что!

Веб-сервисы дают разработчикам возможность использовать четыре открытых веб-стандарта:

  1. HTTP — протокол передачи гипертекста
    Стандартный протокол, используемый через порт 80, который пересекает брандмауэры и отвечает за запрос и передачу данных через Интернет.
  2. SOAP — простой протокол доступа к объектам
    Присущий XML протокол, который включает в себя набор правил для описания данных и обработки. Как стандарт, это центральная часть, которая дополняет три других стандарта, упомянутых здесь.
  3. XML — расширяемый язык разметки
    Самый распространенный язык разметки, на котором написана вся эта информация.
  4. WSDL — язык описания веб-сервисов
    Метод на основе XML, используемый для идентификации веб-служб и их доступа во время выполнения. .NET предоставляет инструмент под названием WSDL.exe, который существенно упрощает создание веб-службы XML в виде файла XML. Он содержит все методы и инструкции, которые имеет веб-служба, и, как правило, использует SOAP по умолчанию.

В этой статье вы узнаете, как создать и использовать управляемый данными веб-сервис .NET XML за 5 быстрых и простых шагов!

Я предполагаю, что вы хорошо знакомы с общим доступом к данным .NET, элементами управления веб-сервером, такой сеткой данных и некоторыми концепциями объектно-ориентированного программирования. Если нет, не волнуйтесь слишком сильно. Если вы завершите примеры и просмотрите результаты, у вас не должно возникнуть проблем с отслеживанием причин и следствий того, что влечет за собой этот учебник.

До .NET существовали и другие альтернативы, которые можно было использовать для доступа к веб-службе, например компонент Microsoft MSXML, который позволял вам взаимодействовать с данной веб-службой через HTTP POST. Однако этот процесс, хотя и приемлемый, просто не является .NET.

Хорошо, начнем!

Шаг 1 — Создайте веб-сервис

Сначала мы создадим функцию или метод Web-сервиса, который вы будете вызывать (или «выставлять») через Интернет, как любой объектно-ориентированный класс. Разница в том, что в этом случае нам нужно будет включить и импортировать все необходимые пространства имен, синтаксис и атрибуты веб-служб, а также наши пространства имен данных. Поскольку в этой статье используется C #, также будут показаны все важные различия, касающиеся VB.

Итак, скопируйте приведенный ниже код в файл с именем sources.asmx. Сохраните его в папку Inetpub / wwwroot, а затем запустите его в браузере, используя http: //localhost/suppliers.asmx. Вы увидите список описаний веб-служб, включая имя веб-службы и открытый метод.

Нажав на ссылку открытого метода, вы увидите три основных протокола, доступных для вашего использования. Как вы знаете, файл с расширением .asmx является фактическим файлом веб-службы, который позволяет среде выполнения ASP.NET возвращать все подходящие методы и информацию веб-службы.

<%@ WebService Language="C#" Class="GetInfo" %> 

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;

[WebService(Description="My Suppliers List Web Service")]

public class GetInfo : WebService  
{

 [WebMethod(BufferResponse=true)]

 public DataSet ShowSuppliers (string str)  
 {

   SqlConnection dbConnection = new SqlConnection("server=(local);
                                uid=sa;pwd=;database=Northwind;");

   SqlDataAdapter objCommand = new SqlDataAdapter("select  
              ContactName, CompanyName, City, Phone from Suppliers  
              where Country = '" + str + "' order by ContactName  
              asc", dbConnection);

   DataSet DS = new DataSet();

   objCommand.Fill(DS);

   return DS;

   dbConnection.Close();
   dbConnection = null;

 }

}

Директива <%@ WebService Language="C#" Class="GetInfo" %>

Перейти на страницу: 1 | 2 | 3 | 4