SoapHttpClientProtocol 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.
Especifica o cliente de classe do qual os proxies derivam ao usar 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
- Herança
- Atributos
Exemplos
O seguinte exemplo de código é uma classe proxy gerada por Wsdl.exe para o Math serviço Web XML. A classe proxy deriva de SoapHttpClientProtocol, que deriva da classe abstrata 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
O seguinte exemplo de código é o Math serviço Web XML, a partir do qual a classe proxy anterior foi gerada.
Importante
Este exemplo tem uma caixa de texto que aceita a entrada do utilizador, o que constitui uma potencial ameaça à segurança. Por defeito, as páginas Web do ASP.NET validam que a entrada do utilizador não inclui elementos de script ou HTML. Para mais informações, consulte Visão Geral dos Exploits de Scripts.
<%@ 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
Observações
Se estiver a construir um cliente de serviço Web XML, então deve ser criada uma classe proxy que derive indiretamente ou diretamente WebClientProtocol para o serviço Web XML. Quando o cliente do serviço Web XML chama usando SOAP, a classe proxy deve derivar de SoapHttpClientProtocol, que deriva de HttpWebClientProtocol. HttpWebClientProtocol, por sua vez, deriva de WebClientProtocol.
Para comunicar com um serviço Web XML, crie uma classe proxy que derive indiretamente ou diretamente WebClientProtocol do serviço Web XML que pretende chamar. Em vez de criar a classe proxy manualmente, utilize-se a ferramenta Web Services Description Language (Wsdl.exe) para criar uma classe proxy para a descrição do serviço Web de um dado serviço Web. Quando uma classe proxy é gerada para o protocolo SOAP, chamadas síncronas para métodos de serviço Web XML são feitas através do Invoke método, enquanto chamadas assíncronas são feitas usando o BeginInvoke método e o EndInvoke método.
Notas para Herdeiros
Ao sobrescrever esta classe, pode introduzir métodos na classe derivada que são específicos de um determinado tipo de serviço Web XML. Os métodos capturam os parâmetros e chamam a classe base para fazer o trabalho de comunicação com o serviço Web XML. Se os métodos introduzidos forem assíncronos, chama-se o BeginInvoke(String, Object[], AsyncCallback, Object) método e o EndInvoke(IAsyncResult) método. Se os métodos introduzidos forem síncronos, chama-se o Invoke(String, Object[]) método. O construtor sobreposto normalmente define a Url propriedade para a URL do método do serviço Web XML.
Construtores
| Name | Description |
|---|---|
| SoapHttpClientProtocol() |
Inicializa uma nova instância da SoapHttpClientProtocol classe. |
Propriedades
| Name | Description |
|---|---|
| AllowAutoRedirect |
Obtém ou define se o cliente segue automaticamente os redirecionamentos do servidor. (Herdado de HttpWebClientProtocol) |
| 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. (Herdado de HttpWebClientProtocol) |
| 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. (Herdado de HttpWebClientProtocol) |
| 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. (Herdado de 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. (Herdado de HttpWebClientProtocol) |
| 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) |
| SoapVersion |
Obtém ou define a versão do protocolo SOAP usada para fazer o pedido SOAP ao serviço Web XML. |
| 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. (Herdado de HttpWebClientProtocol) |
| 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. (Herdado de HttpWebClientProtocol) |
Métodos
| Name | Description |
|---|---|
| Abort() |
Cancela um pedido para um método de serviço Web XML. (Herdado de WebClientProtocol) |
| BeginInvoke(String, Object[], AsyncCallback, Object) |
Inicia uma invocação assíncrona de um método de serviço Web XML usando SOAP. |
| 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. (Herdado de HttpWebClientProtocol) |
| 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) |
| Discover() |
Liga-se dinamicamente a um serviço Web XML descrito no documento de descoberta em Url. |
| 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) |
| EndInvoke(IAsyncResult) |
Termina uma invocação assíncrona de um método de serviço Web XML usando SOAP. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| 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) |
| GetReaderForMessage(SoapClientMessage, Int32) |
Devolve um XmlReader inicializado com a Stream propriedade do SoapClientMessage parâmetro. |
| 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 especificado |
| GetWebResponse(WebRequest, IAsyncResult) |
Retorna uma resposta de um pedido assíncrono para um método de serviço Web XML. (Herdado de HttpWebClientProtocol) |
| GetWebResponse(WebRequest) |
Retorna uma resposta de um pedido síncrono para um método de serviço Web XML. (Herdado de HttpWebClientProtocol) |
| GetWriterForMessage(SoapClientMessage, Int32) |
Devolve uma XmlWriter inicialização com a Stream propriedade do SoapClientMessage parâmetro. |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| Invoke(String, Object[]) |
Invoca um método de serviço Web XML de forma síncrona usando SOAP. |
| InvokeAsync(String, Object[], SendOrPostCallback, Object) |
Invoca o método especificado de forma assíncrona. |
| InvokeAsync(String, Object[], SendOrPostCallback) |
Invoca o método especificado de forma assíncrona. |
| 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
Este tipo é seguro para fios.