Поделиться через


Как создать клиента, обрабатывающего заголовки SOAP

Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.

Пример кода

Клиент веб-службы может отправлять и получать заголовки SOAP при взаимодействии с веб-службой. Если прокси-класс создан с помощью программы Wsdl.exe и предназначен для веб-службы, ожидающей или возвращающей заголовки SOAP, в нем имеется информация о заголовках SOAP. А именно, в этом прокси-классе имеются переменные-члены, представляющие заголовки SOAP, коррелятивные по отношению к имеющимся в веб-службе. В нем также имеются определения соответствующих классов, представляющих заголовок SOAP. Например, прокси-классы, созданные для предыдущей веб-службы, будут содержать переменную-член типа MyHeader и определение класса MyHeader. Подробные сведения о создании прокси-класса см. в разделе Создание прокси-класса XML-веб-службы.

Примечание: если для веб-службы определены переменные-члены, представляющие заголовки SOAP типа SoapHeader или SoapUnknownHeader, а не класс, наследуемый от SoapHeader, прокси-класс не будет содержать никакой информации о заголовке SOAP.

Обработка заголовков SOAP в клиенте веб-службы

  1. Создайте новый экземпляр класса, представляющего заголовок SOAP.

    Dim mySoapHeader As MyHeader = New MyHeader()
    
    MyHeader mySoapHeader = new MyHeader();
    
  2. Заполните значения для заголовка SOAP.

    mySoapHeader.Username = UserName
    mySoapHeader.Password = SecurelyStoredPassword
    
    mySoapHeader.Username = Username;
    mySoapHeader.Password = SecurelyStoredPassword
    
  3. Создайте новый экземпляр прокси-класса.

    Dim proxy As MyWebService = New MyWebService()
    
    MyWebService proxy = new MyWebService();
    
  4. Присвойте объект заголовка SOAP переменной-члену прокси-класса, представляющего заголовок SOAP.

    proxy.MyHeaderValue = mySoapHeader
    
    proxy.MyHeaderValue = mySoapHeader
    
  5. Вызовите метод прокси-класса, взаимодействующий с методом веб-службы.

    Часть отправленного веб-службе запроса SOAP, содержащая заголовок SOAP, будет включать содержимое данных, хранящихся в объекте заголовка SOAP.

    Dim results as String = proxy.MyWebMethod()
    
    string results = proxy.MyWebMethod();
    

Пример

В следующем примере кода показана передача заголовка SOAP веб-службе от клиента.

<%@ Page Language="VB" %>

<asp:Label id="ReturnValue" runat="server" />
<script runat=server language=VB>

 Sub Page_Load(o As Object, e As EventArgs)

  Dim mySoapHeader As MyHeader = New MyHeader()  ' Populate the values of the SOAP header.  mySoapHeader.Username = UserName  mySoapHeader.Password = SecurelyStoredPassword

  ' Create a new instance of the proxy class.
  Dim proxy As MyWebService = New MyWebService()
  
  ' Add the MyHeader SOAP header to the SOAP request.  proxy.MyHeaderValue = mySoapHeader

  ' Call the method on proxy class that communicates with
  ' your Web service method.
  Dim results as String = proxy.MyWebMethod()

  ' Display the results of the method in a label.
  ReturnValue.Text = results

 End Sub
</script>
<%@ Page Language="C#" %>

<asp:Label id="ReturnValue" runat="server" />
<script runat=server language=c#>

 void Page_Load(Object o, EventArgs e)
 {

  MyHeader mySoapHeader = new MyHeader();  // Populate the values of the SOAP header.  mySoapHeader.Username = Username;  mySoapHeader.Password = SecurelyStoredPassword;

  // Create a new instance of the proxy class.
  MyWebService proxy = new MyWebService();
  
  // Add the MyHeader SOAP header to the SOAP request.  proxy.MyHeaderValue = mySoapHeader;

  // Call the method on the proxy class that communicates with
  // your Web service method.
  string results = proxy.MyWebMethod();

  // Display the results of the method in a label.
  ReturnValue.Text = results;
 }
</script>

См. также

Справочник

SoapHeader
SoapUnknownHeader
SoapHeaderException

Основные понятия

Создание клиентов XML-веб-службы

Другие ресурсы

Использование заголовков SOAP
XML-веб-службы с использованием ASP.NET