SoapHttpClientProtocol Класс

Определение

Указывает клиент класса, производный от прокси-серверов при использовании SOAP.

public ref class SoapHttpClientProtocol : System::Web::Services::Protocols::HttpWebClientProtocol
public class SoapHttpClientProtocol : System.Web.Services.Protocols.HttpWebClientProtocol
[System.Runtime.InteropServices.ComVisible(true)]
public class SoapHttpClientProtocol : System.Web.Services.Protocols.HttpWebClientProtocol
type SoapHttpClientProtocol = class
    inherit HttpWebClientProtocol
[<System.Runtime.InteropServices.ComVisible(true)>]
type SoapHttpClientProtocol = class
    inherit HttpWebClientProtocol
Public Class SoapHttpClientProtocol
Inherits HttpWebClientProtocol
Наследование
Атрибуты

Примеры

В следующем примере кода используется прокси-класс, созданный Wsdl.exe для Math веб-службы XML. Прокси-класс является производным от SoapHttpClientProtocolкласса, производным от абстрактного WebClientProtocol класса.

#using <System.Web.Services.dll>
#using <System.Xml.dll>
#using <System.dll>

using namespace System::Diagnostics;
using namespace System::Xml::Serialization;
using namespace System;
using namespace System::Web::Services::Protocols;
using namespace System::Web::Services;

namespace MyMath
{

   [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap",Namespace="http://www.contoso.com/")]
   public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol
   {
   public:

      [System::Diagnostics::DebuggerStepThroughAttribute]
      MyMath()
      {
         this->Url = "http://www.contoso.com/math.asmx";
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://www.contoso.com/Add",
      RequestNamespace="http://www.contoso.com/",ResponseNamespace="http://www.contoso.com/",
      Use=System::Web::Services::Description::SoapBindingUse::Literal,
      ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)]
      int Add( int num1, int num2 )
      {
         array<Object^>^temp0 = {num1,num2};
         array<Object^>^results = this->Invoke( "Add", temp0 );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState )
      {
         array<Object^>^temp1 = {num1,num2};
         return this->BeginInvoke( "Add", temp1, callback, asyncState );
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      int EndAdd( System::IAsyncResult^ asyncResult )
      {
         array<Object^>^results = this->EndInvoke( asyncResult );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }

   };

}


namespace MyMath {
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System;
    using System.Web.Services.Protocols;
    using System.Web.Services;

    [System.Web.Services.WebServiceBindingAttribute(Name="MyMathSoap", Namespace="http://www.contoso.com/")]
    public class MyMath : System.Web.Services.Protocols.SoapHttpClientProtocol {

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public MyMath() {
            this.Url = "http://www.contoso.com/math.asmx";
        }

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.contoso.com/Add", RequestNamespace="http://www.contoso.com/", ResponseNamespace="http://www.contoso.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int Add(int num1, int num2) {
            object[] results = this.Invoke("Add", new object[] {num1,
                        num2});
            return ((int)(results[0]));
        }

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public System.IAsyncResult BeginAdd(int num1, int num2, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("Add", new object[] {num1,
                        num2}, callback, asyncState);
        }

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public int EndAdd(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
    }
}

Option Strict On
Option Explicit On

Imports System.Diagnostics
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization

Namespace MyMath
    
    <System.Web.Services.WebServiceBindingAttribute(Name:="MyMathSoap", [Namespace]:="http://www.contoso.com/")>  _
    Public Class MyMath
        Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Sub New()
            MyBase.New
            Me.Url = "http://www.contoso.com/math.asmx"
        End Sub
        
        <System.Diagnostics.DebuggerStepThroughAttribute(),  _
         System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.contoso.com/Add", RequestNamespace:="http://www.contoso.com/", ResponseNamespace:="http://www.contoso.com/", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)>  _
        Public Function Add(ByVal num1 As Integer, ByVal num2 As Integer) As Integer
            Dim results() As Object = Me.Invoke("Add", New Object() {num1, num2})
            Return CType(results(0),Integer)
        End Function
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Function BeginAdd(ByVal num1 As Integer, ByVal num2 As Integer, ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As System.IAsyncResult
            Return Me.BeginInvoke("Add", New Object() {num1, num2}, callback, asyncState)
        End Function
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Function EndAdd(ByVal asyncResult As System.IAsyncResult) As Integer
            Dim results() As Object = Me.EndInvoke(asyncResult)
            Return CType(results(0),Integer)
        End Function
    End Class
End Namespace

Следующий пример кода — это Math веб-служба XML, из которой был создан предыдущий прокси-класс.

Important

В этом примере есть текстовое поле, которое принимает входные данные пользователя, которое является потенциальной угрозой безопасности. По умолчанию ASP.NET веб-страницы проверяют, что входные данные пользователя не включают скрипт или ЭЛЕМЕНТЫ HTML. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".

<%@ WebService Language="C#" Class="MyMath"%>
 using System.Web.Services;
 using System;
 
 [WebService(Namespace="http://www.contoso.com/")] 
 public class MyMath {
    
    [ WebMethod ]
    public int Add(int num1, int num2) {
        return num1+num2;
    }
 }
<%@ WebService Language="VB" Class="MyMath"%>
Imports System.Web.Services
Imports System

<WebService(Namespace:="http://www.contoso.com/")> _
Public Class MyMath
    <WebMethod()> _
    Public Function Add(num1 As Integer, num2 As Integer) As Integer
        Return num1 + num2
    End Function 'Add
End Class 'Math

Комментарии

Если вы создаете клиент веб-службы XML, то для веб-службы XML необходимо создать прокси-класс, производный косвенно или непосредственно от WebClientProtocol него. Когда клиент веб-службы XML вызывается с помощью SOAP, класс прокси-сервера должен быть производным отSoapHttpClientProtocolHttpWebClientProtocol, от которого происходит. HttpWebClientProtocol, в свою очередь, является производным от WebClientProtocol.

Чтобы взаимодействовать с веб-службой XML, создайте прокси-класс, производный косвенно или непосредственно от WebClientProtocol веб-службы XML, которую требуется вызвать. Вместо создания класса прокси-сервера вручную используйте средство языка описания веб-служб (Wsdl.exe) для создания прокси-класса для определенного описания службы XML. При создании прокси-класса для протокола SOAP синхронные вызовы методов веб-службы XML выполняются с помощью Invoke метода, а асинхронные вызовы выполняются с помощью BeginInvoke метода и EndInvoke метода.

Примечания для тех, кто наследует этот метод

При переопределении этого класса можно вводить методы в производный класс, характерный для определенного типа веб-службы XML. Методы фиксируют параметры и вызывают базовый класс для работы с веб-службой XML. Если введенные методы являются асинхронными, вызовите BeginInvoke(String, Object[], AsyncCallback, Object) метод и EndInvoke(IAsyncResult) метод. Если введенные методы синхронны, вызовите Invoke(String, Object[]) метод. Переопределенный конструктор обычно задает Url свойство URL-адрес метода веб-службы XML.

Конструкторы

Имя Описание
SoapHttpClientProtocol()

Инициализирует новый экземпляр класса SoapHttpClientProtocol.

Свойства

Имя Описание
AllowAutoRedirect

Возвращает или задает, следует ли клиенту автоматически выполнять перенаправления сервера.

(Унаследовано от HttpWebClientProtocol)
CanRaiseEvents

Возвращает значение, указывающее, может ли компонент вызвать событие.

(Унаследовано от Component)
ClientCertificates

Возвращает коллекцию сертификатов клиента.

(Унаследовано от HttpWebClientProtocol)
ConnectionGroupName

Возвращает или задает имя группы подключений для запроса.

(Унаследовано от WebClientProtocol)
Container

Возвращает объект IContainer , содержащий Componentобъект .

(Унаследовано от Component)
CookieContainer

Возвращает или задает коллекцию файлов cookie.

(Унаследовано от HttpWebClientProtocol)
Credentials

Возвращает или задает учетные данные безопасности для проверки подлинности клиента веб-службы XML.

(Унаследовано от WebClientProtocol)
DesignMode

Возвращает значение, указывающее, находится ли текущий Component режим разработки.

(Унаследовано от Component)
EnableDecompression

Возвращает или задает значение, указывающее, включена ли декомпрессия для этого HttpWebClientProtocol.

(Унаследовано от HttpWebClientProtocol)
Events

Возвращает список обработчиков событий, подключенных к этому Component.

(Унаследовано от Component)
PreAuthenticate

Возвращает или задает, включена ли предварительная проверка подлинности.

(Унаследовано от WebClientProtocol)
Proxy

Возвращает или задает сведения о прокси-сервере для выполнения запроса веб-службы XML через брандмауэр.

(Унаследовано от HttpWebClientProtocol)
RequestEncoding

Используется Encoding для запроса клиента к веб-службе XML.

(Унаследовано от WebClientProtocol)
Site

Возвращает или задает ISite объект Component.

(Унаследовано от Component)
SoapVersion

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

Timeout

Указывает время, когда клиент веб-службы XML ожидает ответа на синхронный запрос веб-службы XML (в миллисекундах).

(Унаследовано от WebClientProtocol)
UnsafeAuthenticatedConnectionSharing

Возвращает или задает значение, указывающее, включен ли общий доступ к подключению, если клиент использует проверку подлинности NTLM для подключения к веб-серверу, на котором размещена веб-служба XML.

(Унаследовано от HttpWebClientProtocol)
Url

Возвращает или задает базовый URL-адрес веб-службы XML, запрашиваемой клиентом.

(Унаследовано от WebClientProtocol)
UseDefaultCredentials

Возвращает или задает значение, указывающее, следует ли задать Credentials свойство значению DefaultCredentials свойства.

(Унаследовано от WebClientProtocol)
UserAgent

Возвращает или задает значение заголовка агента пользователя, отправляемого с каждым запросом.

(Унаследовано от HttpWebClientProtocol)

Методы

Имя Описание
Abort()

Отменяет запрос к методу веб-службы XML.

(Унаследовано от WebClientProtocol)
BeginInvoke(String, Object[], AsyncCallback, Object)

Запускает асинхронное вызов метода веб-службы XML с помощью SOAP.

CancelAsync(Object)

Отменяет асинхронный вызов метода веб-службы XML, если вызов еще не завершен.

(Унаследовано от HttpWebClientProtocol)
CreateObjRef(Type)

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

(Унаследовано от MarshalByRefObject)
Discover()

Динамически привязывается к веб-службе XML, описанной в документе Urlобнаружения.

Dispose()

Освобождает все ресурсы, используемые параметром Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые Component и при необходимости освобождает управляемые ресурсы.

(Унаследовано от Component)
EndInvoke(IAsyncResult)

Завершает асинхронное вызов метода веб-службы XML с помощью SOAP.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
GetReaderForMessage(SoapClientMessage, Int32)

Возвращает инициализированную со свойством XmlReaderStreamSoapClientMessage параметра.

GetService(Type)

Возвращает объект, представляющий службу, предоставляемую Component или ее Container.

(Унаследовано от Component)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetWebRequest(Uri)

WebRequest Создает объект для указанного uriобъекта.

GetWebResponse(WebRequest, IAsyncResult)

Возвращает ответ от асинхронного запроса к методу веб-службы XML.

(Унаследовано от HttpWebClientProtocol)
GetWebResponse(WebRequest)

Возвращает ответ от синхронного запроса к методу веб-службы XML.

(Унаследовано от HttpWebClientProtocol)
GetWriterForMessage(SoapClientMessage, Int32)

Возвращает инициализированную XmlWriter со свойством StreamSoapClientMessage параметра.

InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
Invoke(String, Object[])

Вызывает метод веб-службы XML синхронно с помощью SOAP.

InvokeAsync(String, Object[], SendOrPostCallback, Object)

Вызывает указанный метод асинхронно.

InvokeAsync(String, Object[], SendOrPostCallback)

Вызывает указанный метод асинхронно.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неглубокую копию текущего MarshalByRefObject объекта.

(Унаследовано от MarshalByRefObject)
ToString()

String Возвращает имя, содержащее имя , если таковое Componentимеется. Этот метод не должен быть переопределен.

(Унаследовано от Component)

События

Имя Описание
Disposed

Происходит при удалении компонента вызовом Dispose() метода.

(Унаследовано от Component)

Применяется к

Потокобезопасность

Этот тип является потокобезопасной.

См. также раздел