HttpWebRequest Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma implementação específica de HTTP da classe WebRequest.
public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
inherit WebRequest
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
[<System.Serializable>]
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 a seguir cria um HttpWebRequest para o URI http://www.contoso.com/
.
HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
Dim myReq As HttpWebRequest = _
WebRequest.Create("http://www.contoso.com/")
Comentários
Importante
Recomendamos que você não use HttpWebRequest
para o novo desenvolvimento. Em vez disso, use a System.Net.Http.HttpClient classe .
A HttpWebRequest classe fornece suporte para as propriedades e métodos definidos em WebRequest e para propriedades e métodos adicionais que permitem que o usuário interaja 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 URI (Uniform Resource Identifier) for http://
ou https://
, Create retornará um HttpWebRequest objeto .
O GetResponse método faz uma solicitação síncrona para o recurso especificado na RequestUri propriedade e retorna um HttpWebResponse que contém o objeto de resposta. Os dados de resposta podem ser recebidos usando o fluxo retornado 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 esvaziados e o soquete será reutilizado para solicitações subsequentes ao fechar o objeto de resposta ou o fluxo se as seguintes condições forem mantidas: é uma solicitação keep alive ou pipelined, apenas uma pequena quantidade de dados precisa ser recebida ou os dados restantes são recebidos em um pequeno intervalo de tempo. Se nenhuma das condições mencionadas se manter ou o tempo de esvaziamento for excedido, o soquete será fechado. Para conexões keep alive ou pipelined, é altamente recomendável que o aplicativo leia os fluxos até o EOF. Isso garante que o soquete seja usado novamente para solicitações subsequentes, resultando em melhor desempenho e menos recursos usados.
Quando você deseja enviar dados para o recurso, o GetRequestStream método retorna um Stream objeto a ser usado para enviar dados. Os BeginGetRequestStream métodos e EndGetRequestStream fornecem acesso assíncrono ao fluxo de dados de envio.
Para autenticação de cliente com HttpWebRequest, o certificado do cliente deve ser instalado no repositório Meu certificado do usuário atual.
A HttpWebRequest classe lança um WebException quando ocorrem erros ao acessar um recurso. A WebException.Status propriedade contém um WebExceptionStatus valor que indica a origem do erro. Quando WebException.Status é WebExceptionStatus.ProtocolError, a Response propriedade contém o HttpWebResponse recebido do recurso.
HttpWebRequest expõe valores comuns de cabeçalho HTTP enviados ao recurso da Internet como propriedades, definidos por métodos ou definidos pelo sistema; a tabela a seguir contém uma lista completa. Você pode definir outros cabeçalhos na Headers propriedade como pares nome/valor. Observe que servidores e caches podem alterar ou adicionar cabeçalhos durante a solicitação.
A tabela a seguir lista os cabeçalhos HTTP definidos por propriedades ou 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 |
Defina pelo sistema como a data atual. |
Host |
Defina pelo sistema como informações atuais do host. |
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 . |
Observação
HttpWebRequest é registrado automaticamente. Você não precisa chamar o RegisterPrefix método para registrar System.Net.HttpWebRequest antes de usar URIs começando com http://
ou https://
.
O computador local ou o arquivo de configuração do aplicativo pode especificar que um proxy padrão seja usado. Se a Proxy propriedade for especificada, as configurações de proxy da Proxy propriedade substituirão o computador local ou o arquivo de configuração do aplicativo e a HttpWebRequest instância usará as configurações de proxy especificadas. Se nenhum proxy for especificado em um arquivo de configuração e a Proxy propriedade não for especificada, a HttpWebRequest classe usará as configurações de proxy herdadas das opções da Internet no computador local. Se não houver nenhuma configuração de proxy nas opções da Internet, a solicitação será enviada diretamente para o servidor.
Observação
A Estrutura armazena em cache sessões SSL conforme elas são criadas e tenta reutilizar uma sessão armazenada em cache para uma nova solicitação, se possível. Ao tentar reutilizar uma sessão SSL, o Framework usa o primeiro elemento de ClientCertificates (se houver um) ou tenta reutilizar uma sessão anônima se ClientCertificates estiver vazio.
Observação
Por motivos de segurança, os cookies são desabilitados por padrão. Se você quiser usar cookies, use a CookieContainer propriedade para habilitar cookies.
O .NET Framework 4.6 inclui um novo recurso de segurança que bloqueia algoritmos de codificação e hash inseguros para conexões. Os aplicativos que usam TLS/SSL por meio de APIs como HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream etc. e direcionamento ao .NET Framework 4.6 obtêm o comportamento mais seguro por padrão.
Talvez os desenvolvedores desejem recusar esse comportamento para manter a interoperabilidade com seus serviços SSL3 ou TLS w/ RC4 existentes. Este artigo explica como modificar seu código para que o novo comportamento seja desabilitado.
Construtores
HttpWebRequest() |
Obsoleto.
Obsoleto.
Inicializa uma nova instância da classe HttpWebRequest. Esse construtor é obsoleto. |
HttpWebRequest(SerializationInfo, StreamingContext) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Inicializa uma nova instância da classe HttpWebRequest das instâncias especificadas das classes SerializationInfo e StreamingContext. Esse construtor é obsoleto. |
Propriedades
Accept |
Obtém ou define o valor do cabeçalho HTTP |
Address |
Obtém o URI (Uniform Resource Identifier) do recurso de Internet que realmente responde à solicitação. |
AllowAutoRedirect |
Obtém ou define um valor que indica se a solicitação deve seguir as respostas de redirecionamento. |
AllowReadStreamBuffering |
Obtém ou define um valor que indica se o recebido do recurso da Internet deve ser armazenado em buffer. |
AllowWriteStreamBuffering |
Obtém ou define um valor que indica se os dados enviados para o recurso de Internet devem ser armazenados em buffer. |
AuthenticationLevel |
Obtém ou define valores que indicam o nível de autenticação e representação usada para esta solicitação. (Herdado de WebRequest) |
AutomaticDecompression |
Obtém ou define o tipo de descompactação usada. |
CachePolicy |
Obtém ou define a política de cache para essa solicitação. (Herdado de WebRequest) |
ClientCertificates |
Obtém ou define a coleção de certificados de segurança que estão associadas essa solicitação. |
Connection |
Obtém ou define o valor do cabeçalho HTTP |
ConnectionGroupName |
Obtém ou define o nome do grupo de conexões para a solicitação. |
ConnectionGroupName |
Quando substituído em uma classe decrescente, obtém ou define o nome do grupo de conexão para a solicitação. (Herdado de WebRequest) |
ContentLength |
Obtém ou define o cabeçalho HTTP |
ContentLength |
Quando substituído em uma classe descendente, obtém ou define o tamanho de conteúdo dos dados de solicitação enviados. (Herdado de WebRequest) |
ContentType |
Obtém ou define o valor do cabeçalho HTTP |
ContinueDelegate |
Obtém ou define o método delegado chamado quando uma resposta 100-continue HTTP é recebida do recurso da Internet. |
ContinueTimeout |
Obtém ou define um tempo limite, em milissegundos, para aguardar até que o 100-Continue seja recebido do servidor. |
CookieContainer |
Obtém ou define os cookies associados à solicitação. |
CreatorInstance |
Obsoleto.
Quando substituído em uma classe descendente, obtém o objeto de fábrica derivado da classe IWebRequestCreate usada para criar o WebRequest instanciado para criar a solicitação para o URI especificado. (Herdado de WebRequest) |
Credentials |
Obtém ou define informações de autenticação para a solicitação. |
Date |
Obtém ou define o valor do cabeçalho HTTP |
DefaultCachePolicy |
Obtém ou define a política de cache padrão para essa solicitação. |
DefaultMaximumErrorResponseLength |
Obtém ou define o tamanho máximo padrão de uma resposta de erro HTTP. |
DefaultMaximumResponseHeadersLength |
Obtém ou define o valor padrão para a propriedade MaximumResponseHeadersLength. |
Expect |
Obtém ou define o valor do cabeçalho HTTP |
HaveResponse |
Obtém um valor que indica se uma resposta foi recebida de um recurso da Internet. |
Headers |
Especifica uma coleção de pares nome/valor que compõem os cabeçalhos HTTP. |
Host |
Obtém ou define o valor de cabeçalho do Host a ser usado em uma solicitação HTTP, independente do URI de solicitação. |
IfModifiedSince |
Obtém ou define o valor do cabeçalho HTTP |
ImpersonationLevel |
Obtém ou define o nível de representação para a solicitação atual. (Herdado de WebRequest) |
KeepAlive |
Obtém ou define um valor que indica se é necessário fazer uma conexão persistente com o recurso da Internet. |
MaximumAutomaticRedirections |
Obtém ou define o número máximo de redirecionamentos que a solicitação segue. |
MaximumResponseHeadersLength |
Obtém ou define o comprimento máximo permitido dos cabeçalhos de resposta. |
MediaType |
Obtém ou define o tipo de mídia da solicitação. |
Method |
Obtém ou define o método para a solicitação. |
Pipelined |
Obtém ou define um valor que indica se deve-se fazer pipeline da solicitação ao recurso de Internet. |
PreAuthenticate |
Obtém ou define um valor que indica se é necessário enviar um cabeçalho de autorização com a solicitação. |
PreAuthenticate |
Quando substituído em uma classe descendente, indica se é necessário autenticar previamente a solicitação. (Herdado de WebRequest) |
ProtocolVersion |
Obtém ou define a versão do HTTP a ser usada para a solicitação. |
Proxy |
Obtém ou define informações de proxy da solicitação. |
Proxy |
Quando substituído em uma classe descendente, obtém ou define o proxy de rede a ser usado para acessar esse recurso de Internet. (Herdado de WebRequest) |
ReadWriteTimeout |
Obtém ou define um tempo limite em milissegundos ao gravar ou ler de um fluxo. |
Referer |
Obtém ou define o valor do cabeçalho HTTP |
RequestUri |
Obtém o URI (Uniform Resource Identifier) original da solicitação. |
SendChunked |
Obtém ou define um valor que indica se é necessário enviar os dados em segmentos para o recurso da Internet. |
ServerCertificateValidationCallback |
Obtém ou define uma função de retorno de chamada para validar o certificado do servidor. |
ServicePoint |
Obtém o ponto de serviço a ser usado para a solicitação. |
SupportsCookieContainer |
Obtém um valor que indica se a solicitação dá suporte a um CookieContainer. |
Timeout |
Obtém ou define o valor de tempo limite em milissegundos para os métodos GetResponse() e GetRequestStream(). |
Timeout |
Obtém ou define a duração, em milissegundos, antes que a solicitação atinja o tempo limite. (Herdado de WebRequest) |
TransferEncoding |
Obtém ou define o valor do cabeçalho HTTP |
UnsafeAuthenticatedConnectionSharing |
Obtém ou define um valor que indica se deve ser permitido o compartilhamento de conexão de alta velocidade autenticado por NTLM. |
UseDefaultCredentials |
Obtém ou define um valor Boolean que controla se as credenciais padrão são enviadas com solicitações. |
UseDefaultCredentials |
Quando substituído em uma classe descendente, obtém ou define um valor Boolean que controla se DefaultCredentials são enviados com solicitações. (Herdado de WebRequest) |
UserAgent |
Obtém ou define o valor do cabeçalho HTTP |
Métodos
Abort() |
Cancela uma solicitação para um recurso de Internet. |
AddRange(Int32) |
Adiciona um cabeçalho de intervalo de bytes a uma solicitação de um intervalo específico, do início ou do fim dos dados solicitados. |
AddRange(Int32, Int32) |
Adiciona um cabeçalho de intervalo de byte à solicitação de um intervalo especificado. |
AddRange(Int64) |
Adiciona um cabeçalho de intervalo de bytes a uma solicitação de um intervalo específico, do início ou do fim dos dados solicitados. |
AddRange(Int64, Int64) |
Adiciona um cabeçalho de intervalo de byte à solicitação de um intervalo especificado. |
AddRange(String, Int32) |
Adiciona um cabeçalho de intervalo a uma solicitação de um intervalo específico, do início ou do fim dos dados solicitados. |
AddRange(String, Int32, Int32) |
Adiciona um cabeçalho de intervalo a uma solicitação para um intervalo especificado. |
AddRange(String, Int64) |
Adiciona um cabeçalho de intervalo a uma solicitação de um intervalo específico, do início ou do fim dos dados solicitados. |
AddRange(String, Int64, Int64) |
Adiciona um cabeçalho de intervalo a uma solicitação para um intervalo especificado. |
BeginGetRequestStream(AsyncCallback, Object) |
Inicia uma solicitação assíncrona para um objeto Stream a ser usado para gravar dados. |
BeginGetResponse(AsyncCallback, Object) |
Inicia uma solicitação assíncrona para um recurso da Internet. |
CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
EndGetRequestStream(IAsyncResult) |
Encerra uma solicitação assíncrona para um objeto Stream a ser usado para gravar dados. |
EndGetRequestStream(IAsyncResult, TransportContext) |
Encerra uma solicitação assíncrona para um objeto Stream a ser usado para gravar os dados e produz como saída o TransportContext associado ao fluxo. |
EndGetResponse(IAsyncResult) |
Encerra uma solicitação assíncrona para um recurso da Internet. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Retorna um valor de hash para uma instância de WebRequest. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância. (Herdado de MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Obsoleto.
Obsoleto.
Popula um SerializationInfo com os dados necessários para serializar o objeto de destino. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Popula um SerializationInfo com os dados necessários para serializar o objeto de destino. (Herdado de WebRequest) |
GetRequestStream() |
Obtém um objeto Stream a ser usado para gravar dados de solicitação. |
GetRequestStream() |
Quando substituído em uma classe descendente, retorna um Stream para gravar dados no recurso da Internet. (Herdado de WebRequest) |
GetRequestStream(TransportContext) |
Obtém um objeto Stream a ser usado para gravar os dados de solicitação e gera o TransportContext associado ao fluxo. |
GetRequestStreamAsync() |
Quando substituído em uma classe descendente, retorna um Stream para gravar dados no recurso da Internet como uma operação assíncrona. (Herdado de WebRequest) |
GetResponse() |
Retorna uma resposta de um recurso da Internet. |
GetResponse() |
Quando é substituído em uma classe descendente, retorna uma resposta a uma solicitação à Internet. (Herdado de WebRequest) |
GetResponseAsync() |
Quando é substituído em uma classe descendente, retorna uma resposta a uma solicitação à Internet como uma operação assíncrona. (Herdado de WebRequest) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Obsoleto.
Obsoleto.
Popula um SerializationInfo com os dados necessários para serializar o objeto de destino. |
Métodos de Extensão
GetRequestMetadata(HttpWebRequest) |
Obtém metadados para solicitações de saída a serem usadas para fins de telemetria. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
Define metadados para solicitações de saída a serem usadas para fins de telemetria. |
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários