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


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, из которой был создан предыдущий прокси-класс.

Важно!

В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах 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, прокси-класс должен быть производным от SoapHttpClientProtocol, который является производным от HttpWebClientProtocol. 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)

Возвращает объект XmlReader, инициализированный с помощью свойства Stream параметра SoapClientMessage.

GetService(Type)

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

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

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

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

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

GetWebResponse(WebRequest)

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

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

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

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

Возвращает объект XmlWriter, инициализированный с помощью свойства Stream параметра SoapClientMessage.

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

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

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

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

InvokeAsync(String, Object[], SendOrPostCallback)

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

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

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

MemberwiseClone()

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

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

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

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

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

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

События

Disposed

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

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

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

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

Данный тип потокобезопасен.

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