HttpWebRequest Clase

Definición

Proporciona una implementación específica de HTTP de la clase 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
Herencia
HttpWebRequest
Herencia
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se crea un HttpWebRequest para el 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/")

Comentarios

Importante

No se recomienda usar HttpWebRequest para el nuevo desarrollo. En su lugar, use la System.Net.Http.HttpClient clase .

La HttpWebRequest clase proporciona compatibilidad con las propiedades y los métodos definidos en WebRequest y para propiedades y métodos adicionales que permiten al usuario interactuar directamente con servidores mediante HTTP.

No use el HttpWebRequest constructor . Use el WebRequest.Create método para inicializar nuevos HttpWebRequest objetos. Si el esquema del identificador uniforme de recursos (URI) es http:// o https://, Create devuelve un HttpWebRequest objeto .

El GetResponse método realiza una solicitud sincrónica al recurso especificado en la RequestUri propiedad y devuelve un HttpWebResponse objeto que contiene el objeto de respuesta. Los datos de respuesta se pueden recibir mediante la secuencia devuelta por GetResponseStream. Si se cierra el objeto de respuesta o el flujo de respuesta, se perderán los datos restantes. Los datos restantes se purgarán y el socket se volverá a usar para las solicitudes posteriores al cerrar el objeto de respuesta o el flujo si las condiciones siguientes contienen: es una solicitud de mantenimiento activo o canalizado, solo es necesario recibir una pequeña cantidad de datos o los datos restantes se reciben en un intervalo de tiempo pequeño. Si no se supera ninguna de las condiciones mencionadas o se supera el tiempo de purga, se cerrará el socket. Para las conexiones continuas o canalizaciones, se recomienda encarecidamente que la aplicación lea las secuencias hasta que EOF. Esto garantiza que el socket se volverá a usar para las solicitudes posteriores, lo que dará como resultado un mejor rendimiento y menos recursos usados.

Si desea enviar datos al recurso, el GetRequestStream método devuelve un Stream objeto que se usará para enviar datos. Los BeginGetRequestStream métodos y EndGetRequestStream proporcionan acceso asincrónico al flujo de datos de envío.

Para la autenticación de cliente con HttpWebRequest, el certificado de cliente debe instalarse en el almacén Mi certificado del usuario actual.

La HttpWebRequest clase produce un WebException cuando se producen errores al acceder a un recurso. La WebException.Status propiedad contiene un WebExceptionStatus valor que indica el origen del error. Cuando WebException.Status es WebExceptionStatus.ProtocolError, la Response propiedad contiene el HttpWebResponse objeto recibido del recurso.

HttpWebRequest expone valores de encabezado HTTP comunes enviados al recurso de Internet como propiedades, establecidas por métodos o establecidas por el sistema; la tabla siguiente contiene una lista completa. Puede establecer otros encabezados en la Headers propiedad como pares nombre-valor. Tenga en cuenta que los servidores y las memorias caché pueden cambiar o agregar encabezados durante la solicitud.

En la tabla siguiente se enumeran los encabezados HTTP establecidos por propiedades o métodos o por el sistema.

Encabezado Establecido por
Accept Establézcalo por la Accept propiedad .
Connection Establézcalo por la Connection propiedad , KeepAlive propiedad .
Content-Length Establézcalo por la ContentLength propiedad .
Content-Type Establézcalo por la ContentType propiedad .
Expect Establézcalo por la Expect propiedad .
Date Establezca por el sistema en la fecha actual.
Host Establezca por el sistema en la información actual del host.
If-Modified-Since Establézcalo por la IfModifiedSince propiedad .
Range Se establece mediante el AddRange método .
Referer Establézcalo por la Referer propiedad .
Transfer-Encoding Se establece mediante la TransferEncoding propiedad (la SendChunked propiedad debe ser true).
User-Agent Establézcalo por la UserAgent propiedad .

Nota

HttpWebRequest se registra automáticamente. No es necesario llamar al RegisterPrefix método para registrarse System.Net.HttpWebRequest antes de usar los URI que comienzan por http:// o https://.

El equipo local o el archivo de configuración de la aplicación pueden especificar que se use un proxy predeterminado. Si se especifica la Proxy propiedad , la configuración de proxy de la Proxy propiedad invalida el equipo local o el archivo de configuración de la aplicación y la HttpWebRequest instancia usará la configuración de proxy especificada. Si no se especifica ningún proxy en un archivo de configuración y no se especifica la Proxy propiedad , la HttpWebRequest clase usa la configuración de proxy heredada de Internet Explorer en el equipo local. Si no hay ninguna configuración de proxy en Internet Explorer, la solicitud se envía directamente al servidor.

La HttpWebRequest clase analiza una lista de omisión de proxy con caracteres comodín heredados de Internet Explorer de forma diferente a la lista de omisión que Internet Explorer analiza directamente. Por ejemplo, la HttpWebRequest clase analizará una lista de omisión de "nt*" de Internet Explorer como una expresión regular de "nt.$". Esto difiere del comportamiento nativo de Internet Explorer. Por lo tanto, una dirección URL de "http://intxxxxx" omitiría el proxy mediante la HttpWebRequest clase , pero no omitiría el proxy mediante Internet Explorer.

Nota

Framework almacena en caché las sesiones SSL a medida que se crean e intenta reutilizar una sesión almacenada en caché para una nueva solicitud, si es posible. Al intentar reutilizar una sesión SSL, framework usa el primer elemento de ClientCertificates (si hay uno) o intenta reutilizar una sesión anónima si ClientCertificates está vacía.

Nota

Por motivos de seguridad, las cookies están deshabilitadas de forma predeterminada. Si desea utilizar cookies, utilice la CookieContainer propiedad para habilitar las cookies.

El .NET Framework 4.6 incluye una nueva característica de seguridad que bloquea los algoritmos de cifrado y hash no seguros para las conexiones. Las aplicaciones que usan TLS/SSL a través de API como HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, etc. y el destino .NET Framework 4.6 obtienen el comportamiento más seguro de forma predeterminada.

Es posible que los desarrolladores quieran no participar en este comportamiento para mantener la interoperabilidad con sus servicios SSL3 existentes o con TLS w/ RC4. En este artículo se explica cómo modificar el código para que el nuevo comportamiento esté deshabilitado.

Constructores

HttpWebRequest()
Obsoleto.
Obsoleto.

Inicializa una nueva instancia de la clase HttpWebRequest. Este constructor está obsoleto.

HttpWebRequest(SerializationInfo, StreamingContext)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa una nueva instancia de la clase HttpWebRequest desde las instancias especificadas de las clases SerializationInfo y StreamingContext. Este constructor está obsoleto.

HttpWebRequest(Uri)

Propiedades

Accept

Obtiene o establece el valor del encabezado HTTP Accept.

Address

Obtiene el identificador URI del recurso de Internet que respondió realmente a la solicitud.

AllowAutoRedirect

Obtiene o establece un valor que indica si la solicitud debe seguir las respuestas de redirección.

AllowReadStreamBuffering

Obtiene o establece un valor que indica si los datos recibidos del recurso de Internet deben almacenarse en el búfer.

AllowWriteStreamBuffering

Obtiene o establece un valor que indica si se deben almacenar en el búfer los datos enviados al recurso de Internet.

AuthenticationLevel

Obtiene o establece valores que indican el nivel de autenticación y de suplantación utilizados para esta solicitud.

(Heredado de WebRequest)
AutomaticDecompression

Obtiene o establece el tipo de descompresión que se utiliza.

CachePolicy

Obtiene o establece la directiva de caché para esta solicitud.

(Heredado de WebRequest)
ClientCertificates

Obtiene o establece la colección de certificados de seguridad asociados a esta solicitud.

Connection

Obtiene o establece el valor del encabezado HTTP Connection.

ConnectionGroupName

Obtiene o establece el nombre del grupo de conexiones para la solicitud.

ConnectionGroupName

Cuando se reemplaza en una clase descendiente, obtiene o establece el nombre del grupo de conexiones para la solicitud.

(Heredado de WebRequest)
ContentLength

Obtiene o establece el encabezado HTTP Content-length.

ContentLength

Cuando se reemplaza en una clase descendiente, obtiene o establece la longitud del contenido de los datos solicitados que se envían.

(Heredado de WebRequest)
ContentType

Obtiene o establece el valor del encabezado HTTP Content-type.

ContinueDelegate

Obtiene o establece el método de delegado al que se llama cuando se recibe una respuesta HTTP 100-continue desde el recurso de Internet.

ContinueTimeout

Obtiene o establece el tiempo de espera, en milisegundos, para esperar hasta que se reciba 100-Continue del servidor.

CookieContainer

Obtiene o establece las cookies asociadas a la solicitud.

CreatorInstance
Obsoleto.

Cuando se reemplaza en una clase descendiente, obtiene el objeto generador derivado de la clase IWebRequestCreate usada para crear la instancia de WebRequest para efectuar la solicitud al URI especificado.

(Heredado de WebRequest)
Credentials

Obtiene o establece la información de autenticación para la solicitud.

Date

Obtiene o establece el valor del encabezado HTTP Date que se va a usar en una solicitud HTTP.

DefaultCachePolicy

Obtiene o establece la directiva de caché predeterminada para esta solicitud.

DefaultMaximumErrorResponseLength

Obtiene o establece la longitud máxima predeterminada de una respuesta de error de HTTP.

DefaultMaximumResponseHeadersLength

Obtiene o establece el valor predeterminado de la propiedad MaximumResponseHeadersLength.

Expect

Obtiene o establece el valor del encabezado HTTP Expect.

HaveResponse

Obtiene un valor que indica si se ha recibido una respuesta de un recurso de Internet.

Headers

Especifica una colección de los pares nombre/valor que componen los encabezados HTTP.

Host

Obtiene o establece el valor del encabezado Host que se va a usar en una solicitud HTTP independiente del identificador URI de la solicitud.

IfModifiedSince

Obtiene o establece el valor del encabezado HTTP If-Modified-Since.

ImpersonationLevel

Obtiene o establece el nivel de suplantación para la solicitud actual.

(Heredado de WebRequest)
KeepAlive

Obtiene o establece un valor que indica si se debe establecer una conexión persistente en el recurso de Internet.

MaximumAutomaticRedirections

Obtiene o establece el número máximo de redirecciones que seguirá la solicitud.

MaximumResponseHeadersLength

Obtiene o establece la longitud máxima permitida de los encabezados de respuesta.

MediaType

Obtiene o establece el tipo del medio de la solicitud.

Method

Obtiene o establece el método para la solicitud.

Pipelined

Obtiene o establece un valor que indica si se debe canalizar la solicitud en el recurso de Internet.

PreAuthenticate

Obtiene o establece un valor que indica si se envía un encabezado de autorización con la solicitud.

PreAuthenticate

Cuando se reemplaza en una clase descendiente, indica si se va a realizar la autenticación previa de la solicitud.

(Heredado de WebRequest)
ProtocolVersion

Obtiene o establece la versión de HTTP que se va a utilizar para la solicitud.

Proxy

Obtiene o establece la información de proxy para la solicitud.

Proxy

Cuando se reemplaza en una clase descendiente, obtiene o establece el proxy de red que se va a utilizar para tener acceso a este recurso de Internet.

(Heredado de WebRequest)
ReadWriteTimeout

Obtiene o establece un tiempo de espera, en milisegundos, al leer o escribir una secuencia.

Referer

Obtiene o establece el valor del encabezado HTTP Referer.

RequestUri

Obtiene el identificador URI original de la solicitud.

SendChunked

Obtiene o establece un valor que indica si se deben enviar los datos en segmentos al recurso de Internet.

ServerCertificateValidationCallback

Obtiene o establece una función de devolución de llamada para validar el certificado de servidor.

ServicePoint

Obtiene el punto de servicio que se va a utilizar para la solicitud.

SupportsCookieContainer

Obtiene un valor que indica si la solicitud admite un CookieContainer.

Timeout

Obtiene o establece el valor de tiempo de espera, en milisegundos, para los métodos GetResponse() y GetRequestStream().

Timeout

Obtiene o establece el tiempo, en milisegundos, antes de que se agoten los tiempos de espera de la solicitud.

(Heredado de WebRequest)
TransferEncoding

Obtiene o establece el valor del encabezado HTTP Transfer-encoding.

UnsafeAuthenticatedConnectionSharing

Obtiene o establece un valor que indica si se permite el uso compartido de las conexiones de alta velocidad autenticadas por NTLM.

UseDefaultCredentials

Obtiene o establece un valor Boolean que controla si se envían las credenciales predeterminadas con las solicitudes.

UseDefaultCredentials

Cuando se reemplaza en una clase descendiente, obtiene o establece un valor Boolean que controla si se envían DefaultCredentials con las solicitudes.

(Heredado de WebRequest)
UserAgent

Obtiene o establece el valor del encabezado HTTP User-agent.

Métodos

Abort()

Cancela una solicitud de un recurso de Internet.

AddRange(Int32)

Agrega un encabezado de intervalo de bytes a una solicitud de un intervalo específico desde el principio o el final de los datos solicitados.

AddRange(Int32, Int32)

Agrega un encabezado de intervalo de bytes a la solicitud de un intervalo especificado.

AddRange(Int64)

Agrega un encabezado de intervalo de bytes a una solicitud de un intervalo específico desde el principio o el final de los datos solicitados.

AddRange(Int64, Int64)

Agrega un encabezado de intervalo de bytes a la solicitud de un intervalo especificado.

AddRange(String, Int32)

Agrega un encabezado Range a una solicitud de un intervalo específico del principio o del final de los datos solicitados.

AddRange(String, Int32, Int32)

Agrega un encabezado de intervalo a una solicitud de un intervalo especificado.

AddRange(String, Int64)

Agrega un encabezado Range a una solicitud de un intervalo específico del principio o del final de los datos solicitados.

AddRange(String, Int64, Int64)

Agrega un encabezado de intervalo a una solicitud de un intervalo especificado.

BeginGetRequestStream(AsyncCallback, Object)

Inicia una solicitud asincrónica de un objeto Stream que se va a utilizar para escribir datos.

BeginGetResponse(AsyncCallback, Object)

Inicia una solicitud asincrónica de un recurso de Internet.

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Finaliza una solicitud asincrónica para utilizar un objeto Stream para escribir datos.

EndGetRequestStream(IAsyncResult, TransportContext)

Finaliza una solicitud asincrónica de un objeto Stream que se va a usar para escribir los datos y genera el objeto TransportContext asociado a la secuencia.

EndGetResponse(IAsyncResult)

Finaliza una solicitud asincrónica de un recurso de Internet.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Devuelve un valor hash para una instancia de WebRequest.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoleto.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.
Obsoleto.
Obsoleto.

Rellena SerializationInfo con los datos necesarios para serializar el objeto de destino.

GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.

Llena SerializationInfo con los datos necesarios para serializar el objeto de destino.

(Heredado de WebRequest)
GetRequestStream()

Obtiene un objeto Stream que se utilizará para escribir los datos de la solicitud.

GetRequestStream()

Cuando se reemplaza en una clase descendiente, devuelve Stream para escribir datos en el recurso de Internet.

(Heredado de WebRequest)
GetRequestStream(TransportContext)

Obtiene un objeto Stream que se va a usar para escribir los datos de la solicitud y genera el objeto TransportContext asociado a la secuencia.

GetRequestStreamAsync()

Cuando se invalida en una clase descendiente, devuelve un objeto Stream para escribir datos en el recurso de Internet como una operación asincrónica.

(Heredado de WebRequest)
GetResponse()

Devuelve una respuesta de un recurso de Internet.

GetResponse()

Cuando se reemplaza en una clase descendiente, devuelve una respuesta a una solicitud de Internet.

(Heredado de WebRequest)
GetResponseAsync()

Cuando se invalida en una clase descendiente, devuelve una respuesta a una solicitud de Internet como una operación asincrónica.

(Heredado de WebRequest)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoleto.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.
Obsoleto.
Obsoleto.

Llena SerializationInfo con los datos necesarios para serializar el objeto de destino.

Se aplica a

Consulte también