Partilhar via


HttpWebRequest Classe

Definição

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
HttpWebRequest
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

Cuidado

WebRequest, HttpWebRequest, ServicePointe WebClient estão obsoletos e você não deve usá-los para um novo desenvolvimento. Em vez disso, use HttpClient.

A classe HttpWebRequest 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 construtor HttpWebRequest. Use o método WebRequest.Create para inicializar novos objetos HttpWebRequest. Se o esquema do URI (Uniform Resource Identifier) for http:// ou https://, Create retornará um objeto HttpWebRequest.

O método GetResponse faz uma solicitação síncrona para o recurso especificado na propriedade RequestUri 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 estiver fechado, os dados restantes serão perdidos. Os dados restantes serão drenados e o soquete será reutilizado para solicitações subsequentes ao fechar o objeto ou fluxo de resposta se as seguintes condições forem mantidas: é uma solicitação mantida ativa ou em pipeline, 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 mantiver ou o tempo de drenagem for excedido, o soquete será fechado. Para conexões mantidas ou em pipeline, é 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 método GetRequestStream retorna um objeto Stream a ser usado para enviar dados. Os métodos BeginGetRequestStream 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 de Certificados do usuário atual.

A classe HttpWebRequest lança um WebException quando ocorrem erros ao acessar um recurso. A propriedade WebException.Status contém um valor WebExceptionStatus que indica a origem do erro. Quando WebException.Status é WebExceptionStatus.ProtocolError, a propriedade Response 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 propriedade Headers 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 propriedade Accept.
Connection Definido pela propriedade Connection, KeepAlive propriedade.
Content-Length Definido pela propriedade ContentLength.
Content-Type Definido pela propriedade ContentType.
Expect Definido pela propriedade Expect.
Date Definido pelo sistema como a data atual.
Host Defina pelo sistema como informações atuais do host.
If-Modified-Since Definido pela propriedade IfModifiedSince.
Range Definido pelo método AddRange.
Referer Definido pela propriedade Referer.
Transfer-Encoding Definido pela propriedade TransferEncoding (a propriedade SendChunked deve ser true).
User-Agent Definido pela propriedade UserAgent.

Nota

HttpWebRequest é registrado automaticamente. Você não precisa chamar o método RegisterPrefix para registrar System.Net.HttpWebRequest antes de usar URIs começando com http:// ou https://.

O arquivo de configuração de aplicativo ou computador local pode especificar que um proxy padrão seja usado. Se a propriedade Proxy for especificada, as configurações de proxy da propriedade Proxy substituirão o computador local ou o arquivo de configuração do aplicativo e a instância HttpWebRequest usará as configurações de proxy especificadas. Se nenhum proxy for especificado em um arquivo de configuração e a propriedade Proxy não for especificada, a classe HttpWebRequest usará as configurações de proxy herdadas das opções da Internet no computador local. Se não houver configurações de proxy nas opções da Internet, a solicitação será enviada diretamente ao servidor.

Nota

O Framework armazena em cache sessões SSL à medida que 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 uma) ou tenta reutilizar uma sessão anônima se ClientCertificates estiver vazia.

Nota

Por motivos de segurança, os cookies são desabilitados por padrão. Se você quiser usar cookies, use a propriedade CookieContainer para habilitar cookies.

O .NET Framework 4.6 inclui um novo recurso de segurança que bloqueia algoritmos de criptografia 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. Este 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. Este construtor é obsoleto.

Propriedades

Accept

Obtém ou define o valor do cabeçalho HTTP Accept.

Address

Obtém o URI (Uniform Resource Identifier) do recurso da Internet que realmente responde à solicitação.

AllowAutoRedirect

Obtém ou define um valor que indica se a solicitação deve seguir respostas de redirecionamento.

AllowReadStreamBuffering

Obtém ou define um valor que indica se o recurso recebido da Internet deve ser armazenado em buffer.

AllowWriteStreamBuffering

Obtém ou define um valor que indica se os dados enviados para o recurso da Internet devem ser armazenados em buffer.

AuthenticationLevel

Obtém ou define valores que indicam o nível de autenticação e representação usados para essa solicitação.

(Herdado de WebRequest)
AutomaticDecompression

Obtém ou define o tipo de descompactação usado.

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 associados a essa solicitação.

Connection

Obtém ou define o valor do cabeçalho HTTP Connection.

ConnectionGroupName

Obtém ou define o nome do grupo de conexões para a solicitação.

ConnectionGroupName

Quando substituído em uma classe descendente, obtém ou define o nome do grupo de conexões para a solicitação.

(Herdado de WebRequest)
ContentLength

Obtém ou define o cabeçalho HTTP Content-length.

ContentLength

Quando substituído em uma classe descendente, obtém ou define o comprimento do conteúdo dos dados de solicitação que estão sendo enviados.

(Herdado de WebRequest)
ContentType

Obtém ou define o valor do cabeçalho HTTP Content-type.

ContinueDelegate

Obtém ou define o método delegado chamado quando uma resposta HTTP 100 continua é 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 fazer 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 Date a ser usado em uma solicitação HTTP.

DefaultCachePolicy

Obtém ou define a política de cache padrão para essa solicitação.

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 para a propriedade MaximumResponseHeadersLength.

Expect

Obtém ou define o valor do cabeçalho HTTP Expect.

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 do cabeçalho host a ser usado em uma solicitação HTTP independente do URI da solicitação.

IfModifiedSince

Obtém ou define o valor do cabeçalho HTTP If-Modified-Since.

ImpersonationLevel

Obtém ou define o nível de representação da 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 a solicitação deve ser pipeline para o recurso da Internet.

PreAuthenticate

Obtém ou define um valor que indica se um cabeçalho de autorização deve ser enviado com a solicitação.

PreAuthenticate

Quando substituído em uma classe descendente, indica se a solicitação deve ser pré-autenticada.

(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 para a 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 da 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 Referer.

RequestUri

Obtém o URI (Uniform Resource Identifier) original da solicitação.

SendChunked

Obtém ou define um valor que indica se os dados devem ser enviados 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 fornece suporte para 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 o período de tempo, em milissegundos, antes do tempo limite da solicitação.

(Herdado de WebRequest)
TransferEncoding

Obtém ou define o valor do cabeçalho HTTP Transfer-encoding.

UnsafeAuthenticatedConnectionSharing

Obtém ou define um valor que indica se o compartilhamento de conexão autenticada por NTLM de alta velocidade deve ser permitido.

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 User-agent.

Métodos

Abort()

Cancela uma solicitação para um recurso da Internet.

AddRange(Int32)

Adiciona um cabeçalho de intervalo de bytes a uma solicitação de um intervalo específico desde o início ou o final dos dados solicitados.

AddRange(Int32, Int32)

Adiciona um cabeçalho de intervalo de bytes à 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 desde o início ou o final dos dados solicitados.

AddRange(Int64, Int64)

Adiciona um cabeçalho de intervalo de bytes à solicitação de um intervalo especificado.

AddRange(String, Int32)

Adiciona um cabeçalho Range a uma solicitação para um intervalo específico desde o início ou o fim dos dados solicitados.

AddRange(String, Int32, Int32)

Adiciona um cabeçalho de intervalo a uma solicitação de um intervalo especificado.

AddRange(String, Int64)

Adiciona um cabeçalho Range a uma solicitação para um intervalo específico desde o início ou o fim dos dados solicitados.

AddRange(String, Int64, Int64)

Adiciona um cabeçalho de intervalo a uma solicitação de 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 de um objeto Stream a ser usado para gravar dados.

EndGetRequestStream(IAsyncResult, TransportContext)

Encerra uma solicitação assíncrona de um objeto Stream a ser usado para gravar dados e gera 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 tempo de vida para essa 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 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 da Internet.

(Herdado de WebRequest)
GetResponseAsync()

Quando substituído em uma classe descendente, retorna uma resposta a uma solicitação da 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 dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(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