Как создать клиента, обрабатывающего заголовки SOAP
Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.
Пример кода
Клиент веб-службы может отправлять и получать заголовки SOAP при взаимодействии с веб-службой. Если прокси-класс создан с помощью программы Wsdl.exe и предназначен для веб-службы, ожидающей или возвращающей заголовки SOAP, в нем имеется информация о заголовках SOAP. А именно, в этом прокси-классе имеются переменные-члены, представляющие заголовки SOAP, коррелятивные по отношению к имеющимся в веб-службе. В нем также имеются определения соответствующих классов, представляющих заголовок SOAP. Например, прокси-классы, созданные для предыдущей веб-службы, будут содержать переменную-член типа MyHeader
и определение класса MyHeader
. Подробные сведения о создании прокси-класса см. в разделе Создание прокси-класса XML-веб-службы.
Примечание: если для веб-службы определены переменные-члены, представляющие заголовки SOAP типа SoapHeader или SoapUnknownHeader, а не класс, наследуемый от SoapHeader, прокси-класс не будет содержать никакой информации о заголовке SOAP.
Обработка заголовков SOAP в клиенте веб-службы
Создайте новый экземпляр класса, представляющего заголовок SOAP.
Dim mySoapHeader As MyHeader = New MyHeader()
MyHeader mySoapHeader = new MyHeader();
Заполните значения для заголовка SOAP.
mySoapHeader.Username = UserName mySoapHeader.Password = SecurelyStoredPassword
mySoapHeader.Username = Username; mySoapHeader.Password = SecurelyStoredPassword
Создайте новый экземпляр прокси-класса.
Dim proxy As MyWebService = New MyWebService()
MyWebService proxy = new MyWebService();
Присвойте объект заголовка SOAP переменной-члену прокси-класса, представляющего заголовок SOAP.
proxy.MyHeaderValue = mySoapHeader
proxy.MyHeaderValue = mySoapHeader
Вызовите метод прокси-класса, взаимодействующий с методом веб-службы.
Часть отправленного веб-службе запроса 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