HttpWebClientProtocol 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í.
Představuje základní třídu pro všechny proxy serveru webové služby XML, které používají přenosový protokol HTTP.
public ref class HttpWebClientProtocol abstract : System::Web::Services::Protocols::WebClientProtocol
public abstract class HttpWebClientProtocol : System.Web.Services.Protocols.WebClientProtocol
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HttpWebClientProtocol : System.Web.Services.Protocols.WebClientProtocol
type HttpWebClientProtocol = class
inherit WebClientProtocol
[<System.Runtime.InteropServices.ComVisible(true)>]
type HttpWebClientProtocol = class
inherit WebClientProtocol
Public MustInherit Class HttpWebClientProtocol
Inherits WebClientProtocol
- Dědičnost
- Odvozené
- Atributy
Příklady
Následující příklad je webový formulář ASP.NET, který volá webovou službu XML s názvem Math.
EnterBtn_Click Webový formulář ve funkci umožňuje serveru automaticky přesměrovat klienta na jiné weby. Nastaví také přihlašovací údaje pro ověřování klientů, nastavení proxy serveru, kódování požadavku a časový limit požadavku před voláním metody webové služby XML.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E)
{
MyMath.Math math = new MyMath.Math();
// Allow the server to redirect the request.
math.AllowAutoRedirect = true;
// Set the client-side credentials using the Credentials property.
ICredentials credentials =
new NetworkCredential("Joe","password","mydomain");
math.Credentials = credentials;
// Set the proxy server to proxyserver, set the port to 80, and specify to bypass
// the proxy server for local addresses.
IWebProxy proxyObject = new WebProxy("http://proxyserver:80",true);
math.Proxy = proxyObject;
// Set the encoding to utf-8.
math.RequestEncoding = System.Text.Encoding.UTF8;
// Set the time out to 15 seconds
math.Timeout = 15000;
int total = math.Add(Convert.ToInt32(Num1.Text),
Convert.ToInt32(Num2.Text));
Total.Text = "Total: " + total.ToString();
}
</script>
<body>
<form action="MathClient.aspx" runat=server>
Enter the two numbers you want to add and then press the Total button.
<p>
Number 1: <asp:textbox id="Num1" runat=server/> +
Number 2: <asp:textbox id="Num2" runat=server/> =
<asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
<p>
<asp:label id="Total" runat=server/>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(Src As Object, E As EventArgs)
Dim math As New MyMath.Math()
' Allow the server to redirect the request.
math.AllowAutoRedirect = True
' Set the client-side credentials using the Credentials property.
Dim credentials = New NetworkCredential("Joe", "password", "mydomain")
math.Credentials = credentials
' Set the proxy server to proxyserver, set the port to 80 and specify to bypass
' the proxy server for local addresses.
Dim proxyObject = New WebProxy("http://proxyserver:80", True)
math.Proxy = proxyObject
' Set the encoding to utf-8.
math.RequestEncoding = System.Text.Encoding.UTF8
' Set the time out to 15 seconds.
math.Timeout = 15000
Dim iTotal As Integer = math.Add(Convert.ToInt32(Num1.Text), _
Convert.ToInt32(Num2.Text))
Total.Text = "Total: " & iTotal.ToString()
End Sub
</script>
<body>
<form action="MathClient.aspx" runat=server>
Enter the two numbers you want to add and then press the Total button.
<p>
Number 1: <asp:textbox id="Num1" runat=server/> +
Number 2: <asp:textbox id="Num2" runat=server/> =
<asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
<p>
<asp:label id="Total" runat=server/>
</form>
</body>
</html>
Poznámky
Vlastnosti této třídy slouží k řízení chování objektu požadavku HTTP použitého k přenosu požadavku XML webové služby a odpovědi. Vlastnosti se mapuje na vlastnosti nalezené na .HttpWebRequest
Chcete-li komunikovat s webovou službou XML pomocí protokolu HTTP, je nutné vytvořit třídu proxy odvozenou nepřímo nebo přímo z HttpWebClientProtocol webové služby XML. Místo ručního vytváření třídy proxy můžete pomocí nástroje Wsdl.exe vytvořit třídu proxy pro popis služby dané webové služby XML.
Vzhledem k tomu, že HttpWebClientProtocol je základní třídou pro všechny třídy proxy, jeho vlastnosti jsou ve vašich třídách proxy. Tyto vlastnosti jsou užitečné pro řízení chování požadavků základního přenosu. Použijte Proxy například vlastnost pro volání webových služeb XML přes bránu firewall. Mnoho z těchto vlastností se používá k inicializaci HttpWebRequest webového požadavku.
SoapHttpClientProtocol, HttpGetClientProtocola HttpPostClientProtocol odvozovat přímo nebo nepřímo z HttpWebClientProtocol poskytování podpory protokolu SOAP, HTTP-GET a HTTP-POST.
Konstruktory
| Name | Description |
|---|---|
| HttpWebClientProtocol() |
Inicializuje novou instanci HttpWebClientProtocol třídy. |
Vlastnosti
| Name | Description |
|---|---|
| AllowAutoRedirect |
Získá nebo nastaví, zda klient automaticky sleduje přesměrování serveru. |
| 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ů. |
| 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. |
| 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. |
| 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. |
| 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 .Component (Zděděno od Component) |
| 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. |
| 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í. |
Metody
| Name | Description |
|---|---|
| Abort() |
Zruší požadavek na metodu webové služby XML. (Zděděno od WebClientProtocol) |
| CancelAsync(Object) |
Zruší asynchronní volání metody webové služby XML, pokud volání ještě není dokončeno. |
| 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) |
| 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) |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GenerateXmlMappings(Type, ArrayList) |
Získá pro každou metodu XmlMembersMapping webové služby XML vystavené zadaným typem a uloží mapování v zadaném ArrayList. |
| GenerateXmlMappings(Type[], ArrayList) |
Získá pro každou metodu XmlMembersMapping webové služby XML vystavené zadanými typy, a uloží mapování v zadaném ArrayList, stejně jako v Hashtable tom, že tato metoda vrátí. |
| 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) |
| 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ý identifikátor URI. |
| GetWebResponse(WebRequest, IAsyncResult) |
Vrátí odpověď z asynchronního požadavku na metodu webové služby XML. |
| GetWebResponse(WebRequest) |
Vrátí odpověď z synchronního požadavku na metodu webové služby XML. |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| 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
Vlastnosti této třídy se zkopírují do nové instance objektu WebRequest pro každé volání metody webové služby XML. I když můžete volat metody webové služby XML ve stejné WebClientProtocol instanci z různých vláken současně, není provedena žádná synchronizace, aby se zajistilo, že konzistentní snímek vlastností se přenese do objektu WebRequest . Proto pokud potřebujete upravit vlastnosti a provádět souběžná volání metod z různých vláken, měli byste použít jinou instanci proxy webové služby XML nebo poskytnout vlastní synchronizaci.