SoapHttpClientProtocol Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje klienta třídy, ze kterého se odvozují proxy servery při použití protokolu 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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu je třída proxy generovaná Wsdl.exe pro Math webovou službu XML. Třída proxy je odvozena od SoapHttpClientProtocol, která je odvozena z abstraktní WebClientProtocol třídy.
#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
Následující příklad kódu je Math webová služba XML, ze které byla vygenerována předchozí třída proxy.
Important
Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřují, že vstup uživatele neobsahuje skripty ani elementy HTML. Další informace naleznete v tématu Přehled zneužití skriptů.
<%@ 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
Poznámky
Pokud vytváříte klienta webové služby XML, musí být vytvořena třída proxy, která je odvozena nepřímo nebo přímo z WebClientProtocol webové služby XML. Při volání klienta webové služby XML pomocí PROTOKOLU SOAP, musí třída proxy odvozena od SoapHttpClientProtocol, která je odvozena z HttpWebClientProtocol. HttpWebClientProtocol, naopak, je odvozen z WebClientProtocol.
Chcete-li komunikovat s webovou službou XML, vytvořte třídu proxy, která je odvozena nepřímo nebo přímo z WebClientProtocol webové služby XML, kterou chcete volat. Místo ručního vytváření třídy proxy použijte nástroj Web Services Description Language (Wsdl.exe) k vytvoření třídy proxy pro daný popis služby WEBOVÉ služby XML. Pokud je pro protokol SOAP vygenerována třída proxy, synchronní volání metod webové služby XML se provádí prostřednictvím Invoke metody, zatímco asynchronní volání se provádí pomocí BeginInvoke metody a EndInvoke metody.
Poznámky pro dědice
Při přepsání této třídy můžete zavést metody v odvozené třídě, které jsou specifické pro konkrétní typ webové služby XML. Metody zachycují parametry a volají základní třídu, aby dělaly práci při komunikaci s webovou službou XML. Pokud jsou zavedené metody asynchronní, zavolejte BeginInvoke(String, Object[], AsyncCallback, Object) metodu a metodu EndInvoke(IAsyncResult) . Pokud jsou zavedené metody synchronní, zavolejte metodu Invoke(String, Object[]) . Přepsaný konstruktor obvykle nastaví Url vlastnost na adresu URL metody webové služby XML.
Konstruktory
| Name | Description |
|---|---|
| SoapHttpClientProtocol() |
Inicializuje novou instanci SoapHttpClientProtocol třídy. |
Vlastnosti
| Name | Description |
|---|---|
| AllowAutoRedirect |
Získá nebo nastaví, zda klient automaticky sleduje přesměrování serveru. (Zděděno od HttpWebClientProtocol) |
| CanRaiseEvents |
Získá hodnotu určující, zda komponenta může vyvolat událost. (Zděděno od Component) |
| ClientCertificates |
Získá kolekci klientských certifikátů. (Zděděno od HttpWebClientProtocol) |
| ConnectionGroupName |
Získá nebo nastaví název skupiny připojení pro požadavek. (Zděděno od WebClientProtocol) |
| Container |
Získá ten IContainer , který obsahuje Component. (Zděděno od Component) |
| CookieContainer |
Získá nebo nastaví kolekci souborů cookie. (Zděděno od HttpWebClientProtocol) |
| Credentials |
Získá nebo nastaví přihlašovací údaje zabezpečení pro ověřování klienta webové služby XML. (Zděděno od WebClientProtocol) |
| DesignMode |
Získá hodnotu, která označuje, zda Component je aktuálně v režimu návrhu. (Zděděno od Component) |
| EnableDecompression |
Získá nebo nastaví hodnotu, která označuje, zda je dekomprese povolena pro toto HttpWebClientProtocol. (Zděděno od HttpWebClientProtocol) |
| Events |
Získá seznam obslužných rutin událostí, které jsou připojeny k tomuto Component. (Zděděno od Component) |
| PreAuthenticate |
Získá nebo nastaví, zda je povoleno předběžné ověřování. (Zděděno od WebClientProtocol) |
| Proxy |
Získá nebo nastaví informace proxy pro vytvoření požadavku webové služby XML prostřednictvím brány firewall. (Zděděno od HttpWebClientProtocol) |
| RequestEncoding |
Používá Encoding se k vytvoření požadavku klienta na webovou službu XML. (Zděděno od WebClientProtocol) |
| Site |
Získá nebo nastaví ISite objektu Component. (Zděděno od Component) |
| SoapVersion |
Získá nebo nastaví verzi protokolu SOAP použité k vytvoření požadavku SOAP do webové služby XML. |
| Timeout |
Označuje čas, kdy klient webové služby XML čeká na odpověď na synchronní požadavek webové služby XML dorazí (v milisekundách). (Zděděno od WebClientProtocol) |
| UnsafeAuthenticatedConnectionSharing |
Získá nebo nastaví hodnotu, která určuje, zda je sdílení připojení povoleno, když klient používá ověřování NTLM pro připojení k webovému serveru, který je hostitelem webové služby XML. (Zděděno od HttpWebClientProtocol) |
| Url |
Získá nebo nastaví základní adresu URL webové služby XML, kterou klient požaduje. (Zděděno od WebClientProtocol) |
| UseDefaultCredentials |
Získá nebo nastaví hodnotu, která určuje, zda má být vlastnost nastavena Credentials na hodnotu DefaultCredentials vlastnosti. (Zděděno od WebClientProtocol) |
| UserAgent |
Získá nebo nastaví hodnotu hlavičky uživatelského agenta, která je odeslána s každou žádostí. (Zděděno od HttpWebClientProtocol) |
Metody
| Name | Description |
|---|---|
| Abort() |
Zruší požadavek na metodu webové služby XML. (Zděděno od WebClientProtocol) |
| BeginInvoke(String, Object[], AsyncCallback, Object) |
Spustí asynchronní vyvolání metody webové služby XML pomocí protokolu SOAP. |
| CancelAsync(Object) |
Zruší asynchronní volání metody webové služby XML, pokud volání ještě není dokončeno. (Zděděno od HttpWebClientProtocol) |
| CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| Discover() |
Dynamicky se sváže s webovou službou XML popsanou v dokumentu zjišťování na adrese Url. |
| Dispose() |
Uvolní všechny prostředky používané nástrojem Component. (Zděděno od Component) |
| Dispose(Boolean) |
Uvolní nespravované prostředky používané Component a volitelně uvolní spravované prostředky. (Zděděno od Component) |
| EndInvoke(IAsyncResult) |
Ukončí asynchronní vyvolání metody webové služby XML pomocí protokolu SOAP. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetReaderForMessage(SoapClientMessage, Int32) |
XmlReader Vrátí inicializovanou Stream vlastnost parametruSoapClientMessage. |
| GetService(Type) |
Vrátí objekt, který představuje službu poskytovanou objektem Component nebo jeho Container. (Zděděno od Component) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| GetWebRequest(Uri) |
Vytvoří WebRequest pro zadaný |
| GetWebResponse(WebRequest, IAsyncResult) |
Vrátí odpověď z asynchronního požadavku na metodu webové služby XML. (Zděděno od HttpWebClientProtocol) |
| GetWebResponse(WebRequest) |
Vrátí odpověď z synchronního požadavku na metodu webové služby XML. (Zděděno od HttpWebClientProtocol) |
| GetWriterForMessage(SoapClientMessage, Int32) |
XmlWriter Vrátí inicializovaný s Stream vlastností parametruSoapClientMessage. |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| Invoke(String, Object[]) |
Vyvolá metodu webové služby XML synchronně pomocí protokolu SOAP. |
| InvokeAsync(String, Object[], SendOrPostCallback, Object) |
Vyvolá zadanou metodu asynchronně. |
| InvokeAsync(String, Object[], SendOrPostCallback) |
Vyvolá zadanou metodu asynchronně. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| ToString() |
String Vrátí hodnotu obsahující název Component, pokud existuje. Tato metoda by neměla být přepsána. (Zděděno od Component) |
Událost
| Name | Description |
|---|---|
| Disposed |
Nastane, když komponenta je uvolněna voláním Dispose() metody. (Zděděno od Component) |
Platí pro
Bezpečný přístup z více vláken
Tento typ je bezpečný pro přístup z více vláken.