HttpWebRequest Classe

Definição

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
HttpWebRequest
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 Accept cabeçalho HTTP.

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 Connection cabeçalho HTTP.

ConnectionGroupName

Obtém ou define o nome do grupo de ligação para o pedido.

ContentLength

Recebe ou define o Content-length cabeçalho HTTP.

ContentType

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

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 Date valor do cabeçalho HTTP para usar num pedido HTTP.

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 Expect 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 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 If-Modified-Since cabeçalho HTTP.

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 Referer cabeçalho HTTP.

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 Transfer-encoding cabeçalho HTTP.

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 User-agent cabeçalho HTTP.

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.

Aplica-se a

Ver também