HttpWebRequest 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.
Fornece uma implementação específica para HTTP da WebRequest classe.
public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
inherit WebRequest
[<System.Serializable>]
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
- Herança
- Herança
- Atributos
- Implementações
Exemplos
O exemplo de código seguinte cria um HttpWebRequest para o URI http://www.contoso.com/.
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
Dim myReq As HttpWebRequest = _
WebRequest.Create("http://www.contoso.com/")
Observações
Atenção
WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletos, e não deves usá-los para novos desenvolvimentos. Utilize HttpClient em substituição.
A HttpWebRequest classe fornece suporte para as propriedades e métodos definidos em WebRequest e para propriedades e métodos adicionais que permitem ao utilizador interagir diretamente com servidores usando HTTP.
Não use o HttpWebRequest construtor. Use o WebRequest.Create método para inicializar novos HttpWebRequest objetos. Se o esquema para o Identificador Uniforme de Recursos (URI) for http:// ou https://, Create devolve um HttpWebRequest objeto.
O GetResponse método faz um pedido síncrono ao recurso especificado na RequestUri propriedade e devolve um HttpWebResponse que contém o objeto resposta. Os dados de resposta podem ser recebidos usando o fluxo devolvido por GetResponseStream. Se o objeto de resposta ou o fluxo de resposta for fechado, os dados restantes serão perdidos. Os dados restantes serão drenados e o socket será reutilizado para pedidos subsequentes ao fechar o objeto ou fluxo de resposta se as seguintes condições se verificarem: é um pedido keep-alive ou pipelineado, apenas uma pequena quantidade de dados precisa de ser recebida, ou os dados restantes são recebidos num curto intervalo de tempo. Se nenhuma das condições mencionadas se confirmar ou se o tempo de drenagem for ultrapassado, a cavidade será fechada. Para ligações keep-alive ou pipeline, recomendamos fortemente que a aplicação leia os fluxos até ao EOF. Isto garante que o socket será reutilizado para pedidos subsequentes, resultando em melhor desempenho e menos recursos utilizados.
Quando se quer enviar dados para o recurso, o GetRequestStream método devolve um Stream objeto para usar para enviar dados. Os BeginGetRequestStream métodos e EndGetRequestStream fornecem acesso assíncrono ao fluxo de dados de envio.
Para a autenticação do cliente com HttpWebRequest, o certificado do cliente deve ser instalado na memória My certificate do utilizador atual.
A HttpWebRequest classe lança um WebException quando ocorrem erros ao aceder a um recurso. A WebException.Status propriedade contém um WebExceptionStatus valor que indica a origem do erro. Quando WebException.Status é , a Response propriedade contém o recebido HttpWebResponseWebExceptionStatus.ProtocolErrordo recurso.
HttpWebRequest expõe valores comuns de cabeçalhos HTTP enviados ao recurso da Internet como propriedades, definidos por métodos ou definidos pelo sistema; A tabela seguinte contém uma lista completa. Pode definir outros cabeçalhos na Headers propriedade como pares nome/valor. Note que servidores e caches podem alterar ou adicionar cabeçalhos durante o pedido.
A tabela seguinte lista os cabeçalhos HTTP que são definidos por propriedades, métodos ou pelo sistema.
| Cabeçalho | Definido por |
|---|---|
Accept |
Definido pela Accept propriedade. |
Connection |
Definido pela Connection propriedade, KeepAlive propriedade. |
Content-Length |
Definido pela ContentLength propriedade. |
Content-Type |
Definido pela ContentType propriedade. |
Expect |
Definido pela Expect propriedade. |
Date |
Definido pelo sistema até à data atual. |
Host |
Definido pelo sistema para a informação atual do anfitrião. |
If-Modified-Since |
Definido pela IfModifiedSince propriedade. |
Range |
Definido pelo AddRange método. |
Referer |
Definido pela Referer propriedade. |
Transfer-Encoding |
Definido pela TransferEncoding propriedade (a SendChunked propriedade deve ser true). |
User-Agent |
Definido pela UserAgent propriedade. |
Note
HttpWebRequest é registado automaticamente. Não precisa de chamar o RegisterPrefix método para registar System.Net.HttpWebRequest antes de usar URIs que começam por http:// ou https://.
O ficheiro de configuração local do computador ou da aplicação pode especificar que deve ser usado um proxy predefinido. Se a Proxy propriedade for especificada, então as definições do proxy da Proxy propriedade sobrepõem-se ao ficheiro de configuração local do computador ou da aplicação e a HttpWebRequest instância usará as definições do proxy especificadas. Se não for especificado um proxy num ficheiro de configuração e a Proxy propriedade não for especificada, a HttpWebRequest classe utiliza as definições de proxy herdadas das opções de Internet no computador local. Se não houver definições de proxy nas opções de Internet, o pedido é enviado diretamente para o servidor.
Note
O Framework armazena em cache as sessões SSL à medida que são criadas e tenta reutilizar uma sessão em cache para um novo pedido, se possível. Ao tentar reutilizar uma sessão SSL, o Framework utiliza o primeiro elemento de ClientCertificates (se existir), ou tenta reutilizar uma sessão anónima se ClientCertificates estiver vazio.
Note
Por razões de segurança, os cookies estão desativados por defeito. Se quiser usar cookies, utilize a CookieContainer propriedade para ativar cookies.
Para aplicações que utilizam TLS/SSL através de APIs como HttpClient, HttpWebRequest, FTPClient, SmtpClient e SsStream, o .NET bloqueia por defeito algoritmos de cifra e hash inseguros para ligações. Pode ter de optar por não participar neste comportamento para manter a interoperabilidade com os serviços SSL3 existentes OU TLS com os serviços RC4. Não pode ligar-se a um servidor usando as APIs ServicePointManager ou SslStream após a atualização para o .NET Framework 4.6 explica como modificar o seu código para desativar este comportamento, se necessário.
Construtores
| Name | Description |
|---|---|
| HttpWebRequest() |
Obsoleto.
Obsoleto.
Inicializa uma nova instância da HttpWebRequest classe. Este construtor é obsoleto. |
| HttpWebRequest(SerializationInfo, StreamingContext) |
Obsoleto.
Obsoleto.
Inicializa uma nova instância da HttpWebRequest classe a partir das instâncias especificadas das SerializationInfo classes e StreamingContext . Este construtor é obsoleto. |
Propriedades
| Name | Description |
|---|---|
| Accept |
Obtém ou define o valor do |
| Address |
Obtém o Identificador Uniforme de Recursos (URI) do recurso da Internet que realmente responde ao pedido. |
| AllowAutoRedirect |
Recebe ou define um valor que indica se o pedido deve seguir respostas de redirecionamento. |
| AllowReadStreamBuffering |
Recebe ou define um valor que indica se deve armazenar em buffer o recebido do recurso da Internet. |
| AllowWriteStreamBuffering |
Recebe ou define um valor que indica se deve armazenar em buffer os dados enviados para o recurso da Internet. |
| AuthenticationLevel |
Obtém ou define valores que indicam o nível de autenticação e personificação usado para este pedido. (Herdado de WebRequest) |
| AutomaticDecompression |
Obtém ou define o tipo de descompressão que é utilizado. |
| CachePolicy |
Recebe ou define a política de cache para este pedido. (Herdado de WebRequest) |
| ClientCertificates |
Obtém ou define a coleção de certificados de segurança associados a este pedido. |
| Connection |
Obtém ou define o valor do |
| ConnectionGroupName |
Obtém ou define o nome do grupo de ligação para o pedido. |
| ContentLength |
Recebe ou define o |
| ContentType |
Obtém ou define o valor do |
| ContinueDelegate |
Obtém ou define o método delegate chamado quando uma resposta HTTP 100-continue é recebida do recurso da Internet. |
| ContinueTimeout |
Recebe ou define um timeout, em milissegundos, para esperar até que o 100-Continue seja recebido do servidor. |
| CookieContainer |
Recebe ou define os cookies associados ao pedido. |
| CreatorInstance |
Obsoleto.
Quando sobrescrito numa classe descendente, obtém o objeto de fábrica derivado da IWebRequestCreate classe usada para criar a WebRequest instanciada para fazer o pedido ao URI especificado. (Herdado de WebRequest) |
| Credentials |
Obtém ou define a informação de autenticação para o pedido. |
| Date |
Obtém ou define o |
| DefaultCachePolicy |
Obtém ou define a política de cache padrão para este pedido. |
| DefaultMaximumErrorResponseLength |
Obtém ou define o comprimento máximo padrão de uma resposta de erro HTTP. |
| DefaultMaximumResponseHeadersLength |
Obtém ou define o padrão da MaximumResponseHeadersLength propriedade. |
| Expect |
Obtém ou define o valor do |
| HaveResponse |
Obtém um valor que indica se uma resposta foi recebida de um recurso da Internet. |
| Headers |
Especifica uma coleção dos pares nome/valor que compõem os cabeçalhos HTTP. |
| Host |
Obtém ou define o valor do cabeçalho Host para usar num pedido HTTP independente do URI do pedido. |
| IfModifiedSince |
Obtém ou define o valor do |
| ImpersonationLevel |
Obtém ou define o nível de personificação para o pedido atual. (Herdado de WebRequest) |
| KeepAlive |
Recebe ou define um valor que indica se deve fazer uma ligação persistente ao recurso da Internet. |
| MaximumAutomaticRedirections |
Obtém ou define o número máximo de redirecionamentos que o pedido segue. |
| MaximumResponseHeadersLength |
Obtém ou define o comprimento máximo permitido dos cabeçalhos de resposta. |
| MediaType |
Obtém ou define o tipo de media do pedido. |
| Method |
Obtém ou define o método para o pedido. |
| Pipelined |
Recebe ou define um valor que indica se deve transferir o pedido para o recurso da Internet. |
| PreAuthenticate |
Recebe ou define um valor que indica se deve enviar um cabeçalho de Autorização com o pedido. |
| ProtocolVersion |
Obtém ou define a versão do HTTP a usar para o pedido. |
| Proxy |
Obtém ou define a informação de proxy para o pedido. |
| Proxy |
Quando é sobreposto numa classe descendente, obtém ou define o proxy de rede para aceder a este recurso da Internet. (Herdado de WebRequest) |
| ReadWriteTimeout |
Recebe ou define um time-out em milissegundos ao escrever ou ler a partir de um stream. |
| Referer |
Obtém ou define o valor do |
| RequestUri |
Obtém o Identificador Uniforme de Recursos (URI) original do pedido. |
| SendChunked |
Recebe ou define um valor que indica se deve enviar dados em segmentos para o recurso da Internet. |
| ServerCertificateValidationCallback |
Recebe ou define uma função de callback para validar o certificado do servidor. |
| ServicePoint |
Obtém o ponto de serviço para usar no pedido. |
| SupportsCookieContainer |
Obtém um valor que indica se o pedido fornece suporte para um CookieContainer. |
| Timeout |
Obtém ou define o valor de time-out em milissegundos para os GetResponse() métodos e GetRequestStream() . |
| TransferEncoding |
Obtém ou define o valor do |
| UnsafeAuthenticatedConnectionSharing |
Recebe ou define um valor que indica se deve permitir partilha de ligação NTLM autenticada em alta velocidade. |
| UseDefaultCredentials |
Recebe ou define um Boolean valor que controla se as credenciais padrão são enviadas com pedidos. |
| UserAgent |
Obtém ou define o valor do |
Métodos
| Name | Description |
|---|---|
| Abort() |
Cancela um pedido a um recurso da Internet. |
| AddRange(Int32, Int32) |
Adiciona um cabeçalho de intervalo de bytes ao pedido para um intervalo especificado. |
| AddRange(Int32) |
Adiciona um cabeçalho de intervalo de bytes a um pedido para um intervalo específico desde o início ou fim dos dados solicitados. |
| AddRange(Int64, Int64) |
Adiciona um cabeçalho de intervalo de bytes ao pedido para um intervalo especificado. |
| AddRange(Int64) |
Adiciona um cabeçalho de intervalo de bytes a um pedido para um intervalo específico desde o início ou fim dos dados solicitados. |
| AddRange(String, Int32, Int32) |
Adiciona um cabeçalho de intervalo a um pedido para um intervalo especificado. |
| AddRange(String, Int32) |
Adiciona um cabeçalho Range a um pedido para um intervalo específico desde o início ou fim dos dados solicitados. |
| AddRange(String, Int64, Int64) |
Adiciona um cabeçalho de intervalo a um pedido para um intervalo especificado. |
| AddRange(String, Int64) |
Adiciona um cabeçalho Range a um pedido para um intervalo específico desde o início ou fim dos dados solicitados. |
| BeginGetRequestStream(AsyncCallback, Object) |
Inicia um pedido assíncrono para que um Stream objeto seja usado para escrever dados. |
| BeginGetResponse(AsyncCallback, Object) |
Inicia um pedido assíncrono para um recurso da Internet. |
| 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) |
| EndGetRequestStream(IAsyncResult, TransportContext) |
Termina um pedido assíncrono para que um Stream objeto seja usado para escrever dados e gera o conteúdo TransportContext associado ao fluxo. |
| EndGetRequestStream(IAsyncResult) |
Termina um pedido assíncrono para um Stream objeto usar para escrever dados. |
| EndGetResponse(IAsyncResult) |
Termina um pedido assíncrono para um recurso da Internet. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Devolve um valor de hash para uma WebRequest instância. |
| 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) |
| GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Preenche a SerializationInfo com os dados necessários para serializar o objeto alvo. |
| GetRequestStream() |
Obtém um Stream objeto para usar para escrever dados de pedidos. |
| GetRequestStream(TransportContext) |
Obtém um Stream objeto para escrever dados de pedido e gera o que TransportContext está associado ao fluxo. |
| GetRequestStreamAsync() |
Quando sobreposto numa classe descendente, devolve a Stream para escrever dados no recurso da Internet como uma operação assíncrona. (Herdado de WebRequest) |
| GetResponse() |
Retorna uma resposta de um recurso da Internet. |
| GetResponseAsync() |
Quando sobreposto numa classe descendente, devolve uma resposta a um pedido da Internet como uma operação assíncrona. (Herdado de WebRequest) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| 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 uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Preenche a SerializationInfo com os dados necessários para serializar o objeto alvo. |