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 Создает объект для указанного |
| 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) |
Применяется к
Потокобезопасность
Этот тип является потокобезопасной.