HttpWebClientProtocol Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa a classe base para todos os proxies de clientes de serviços Web XML que utilizam o protocolo de transporte 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
- Herança
- Derivado
- Atributos
Exemplos
O exemplo seguinte é um ASP.NET Web Form, que chama um serviço Web XML chamado Math. Dentro da EnterBtn_Click função, o Formulário Web permite que o servidor redirecione automaticamente o cliente para outros sites. Também define as credenciais de autenticação do cliente, as definições do proxy, a codificação do pedido e o tempo de espera para o pedido antes de chamar o método do serviço Web 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>
Observações
As propriedades desta classe são usadas para controlar o comportamento do objeto de pedido HTTP usado para transmitir o pedido e resposta do serviço Web XML. As propriedades mapeiam para propriedades encontradas em HttpWebRequest.
Para comunicar com um serviço Web XML usando HTTP, deve criar uma classe proxy derivada indiretamente ou diretamente HttpWebClientProtocol do serviço Web XML. Em vez de criar manualmente a classe proxy, pode usar a ferramenta Wsdl.exe para criar uma classe proxy para a descrição do serviço Web XML dado.
Como o HttpWebClientProtocol é a classe base para todas as classes proxy, as suas propriedades estão nas suas classes proxy. Estas propriedades são úteis para controlar o comportamento de pedido do transporte subjacente. Por exemplo, use a Proxy propriedade para chamar serviços Web XML através de um firewall. Muitas destas propriedades são usadas para inicializar o HttpWebRequest que faz o pedido Web.
SoapHttpClientProtocol, HttpGetClientProtocol, e HttpPostClientProtocol derivam direta ou indiretamente de HttpWebClientProtocol para fornecer suporte ao SOAP, HTTP-GET e HTTP-POST respetivamente.
Construtores
| Name | Description |
|---|---|
| HttpWebClientProtocol() |
Inicializa uma nova instância da HttpWebClientProtocol classe. |
Propriedades
| Name | Description |
|---|---|
| AllowAutoRedirect |
Obtém ou define se o cliente segue automaticamente os redirecionamentos do servidor. |
| CanRaiseEvents |
Obtém um valor que indica se o componente pode gerar um evento. (Herdado de Component) |
| ClientCertificates |
Recebe a coleção de certificados de clientes. |
| ConnectionGroupName |
Obtém ou define o nome do grupo de ligação para o pedido. (Herdado de WebClientProtocol) |
| Container |
Obtém o IContainer que contém o Component. (Herdado de Component) |
| CookieContainer |
Recebe ou define a coleção de bolachas. |
| Credentials |
Obtém ou definem credenciais de segurança para a autenticação de clientes de serviços Web XML. (Herdado de WebClientProtocol) |
| DesignMode |
Obtém um valor que indica se o Component está atualmente em modo de design. (Herdado de Component) |
| EnableDecompression |
Obtém ou define um valor que indica se a descompressão está ativada para este HttpWebClientProtocol. |
| Events |
Obtém a lista de gestores de eventos que estão ligados a isto Component. (Herdado de Component) |
| PreAuthenticate |
Obtém ou define se a pré-autenticação está ativada. (Herdado de WebClientProtocol) |
| Proxy |
Obtém ou define informação proxy para fazer um pedido de serviço Web XML através de um firewall. |
| RequestEncoding |
Eles Encoding eram usados para fazer o pedido do cliente ao serviço Web XML. (Herdado de WebClientProtocol) |
| Site |
Obtém ou define o ISite do Component. (Herdado de Component) |
| Timeout |
Indica o tempo em que um cliente de serviço Web XML espera pela resposta a um pedido síncrono de serviço Web XML (em milissegundos). (Herdado de WebClientProtocol) |
| UnsafeAuthenticatedConnectionSharing |
Recebe ou define um valor que indica se a partilha de ligação está ativada quando o cliente utiliza autenticação NTLM para se ligar ao servidor Web que aloja o serviço Web XML. |
| Url |
Obtém ou define a URL base do serviço Web XML que o cliente está a solicitar. (Herdado de WebClientProtocol) |
| UseDefaultCredentials |
Obtém ou define um valor que indica se deve definir a Credentials propriedade para o valor da DefaultCredentials propriedade. (Herdado de WebClientProtocol) |
| UserAgent |
Recebe ou define o valor do cabeçalho do agente de utilizador que é enviado com cada pedido. |
Métodos
| Name | Description |
|---|---|
| Abort() |
Cancela um pedido para um método de serviço Web XML. (Herdado de WebClientProtocol) |
| CancelAsync(Object) |
Cancela uma chamada assíncrona para um método de serviço Web XML, a menos que a chamada já tenha sido concluída. |
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Liberta todos os recursos utilizados pelo Component. (Herdado de Component) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo Component e opcionalmente liberta os recursos geridos. (Herdado de Component) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GenerateXmlMappings(Type, ArrayList) |
Obtém o XmlMembersMapping para cada método de serviço Web XML exposto pelo tipo especificado e armazena os mapeamentos no método especificado ArrayList. |
| GenerateXmlMappings(Type[], ArrayList) |
Obtém o XmlMembersMapping para cada método de serviço Web XML exposto pelos tipos especificados, e armazena os mapeamentos no especificado ArrayList, bem como em um Hashtable que este método devolve. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetService(Type) |
Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container. (Herdado de Component) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetWebRequest(Uri) |
Cria um WebRequest para o URI especificado. |
| GetWebResponse(WebRequest, IAsyncResult) |
Retorna uma resposta de um pedido assíncrono para um método de serviço Web XML. |
| GetWebResponse(WebRequest) |
Retorna uma resposta de um pedido síncrono para um método de serviço Web XML. |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ToString() |
Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado. (Herdado de Component) |
evento
| Name | Description |
|---|---|
| Disposed |
Ocorre quando o componente é eliminado por uma chamada ao Dispose() método. (Herdado de Component) |
Aplica-se a
Segurança de Thread
As propriedades desta classe são copiadas para uma nova instância de um WebRequest objeto para cada chamada de método de serviço Web XML. Embora possa chamar métodos de serviço Web XML na mesma WebClientProtocol instância a partir de diferentes threads ao mesmo tempo, não há sincronização feita para garantir que um snapshot consistente das propriedades seja transferido para o WebRequest objeto. Portanto, se precisar de modificar as propriedades e fazer chamadas de método concorrentes a partir de diferentes threads, deve usar uma instância diferente do proxy do serviço Web XML ou fornecer a sua própria sincronização.