Compartir a través de


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

Cautela

WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.

La clase HttpWebRequest 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 los servidores mediante HTTP.

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

El método GetResponse realiza una solicitud sincrónica al recurso especificado en la propiedad RequestUri y devuelve un HttpWebResponse 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 canalizada, 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 activas o canalizaciones, se recomienda encarecidamente que la aplicación lea las secuencias hasta EOF. Esto garantiza que el socket se volverá a usar para las solicitudes posteriores, lo que da como resultado un mejor rendimiento y menos recursos usados.

Cuando desea enviar datos al recurso, el método GetRequestStream devuelve un objeto Stream que se va a usar para enviar datos. Los métodos BeginGetRequestStream 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 clase HttpWebRequest produce un WebException cuando se producen errores al acceder a un recurso. La propiedad WebException.Status contiene un valor WebExceptionStatus que indica el origen del error. Cuando WebException.Status es WebExceptionStatus.ProtocolError, la propiedad Response contiene el HttpWebResponse recibido del recurso.

HttpWebRequest expone valores comunes de encabezado HTTP enviados al recurso de Internet como propiedades, establecidos por métodos o establecidos por el sistema; la tabla siguiente contiene una lista completa. Puede establecer otros encabezados en la propiedad Headers 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 que se establecen mediante propiedades o métodos o el sistema.

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

Nota

HttpWebRequest se registra automáticamente. No es necesario llamar al método RegisterPrefix para registrar System.Net.HttpWebRequest antes de usar URI que empiecen 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 propiedad Proxy, la configuración del proxy de la propiedad Proxy invalida el archivo de configuración del equipo local o la aplicación y la instancia de HttpWebRequest 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 propiedad Proxy, la clase HttpWebRequest usa la configuración de proxy heredada de las opciones de Internet en el equipo local. Si no hay ninguna configuración de proxy en las opciones de Internet, la solicitud se envía directamente al servidor.

Nota

Framework almacena en caché las sesiones SSL a medida que se crean e intentan 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 alguno) 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 propiedad CookieContainer para habilitar las cookies.

.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, etcetera. y el destino de .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 TLS w/ RC4. Este artículo explica cómo modificar el código para que el nuevo comportamiento esté deshabilitado.

Constructores

HttpWebRequest()
Obsoletos.
Obsoletos.

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

HttpWebRequest(SerializationInfo, StreamingContext)
Obsoletos.
Obsoletos.
Obsoletos.
Obsoletos.

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

Propiedades

Accept

Obtiene o establece el valor del encabezado HTTP de Accept.

Address

Obtiene el identificador uniforme de recursos (URI) del recurso de Internet que responde realmente a la solicitud.

AllowAutoRedirect

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

AllowReadStreamBuffering

Obtiene o establece un valor que indica si se va a almacenar en búfer el objeto recibido del recurso de Internet.

AllowWriteStreamBuffering

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

AuthenticationLevel

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

(Heredado de WebRequest)
AutomaticDecompression

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

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 de Connection.

ConnectionGroupName

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

ConnectionGroupName

Cuando se invalida 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 de Content-length.

ContentLength

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

(Heredado de WebRequest)
ContentType

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

ContinueDelegate

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

ContinueTimeout

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

CookieContainer

Obtiene o establece las cookies asociadas a la solicitud.

CreatorInstance
Obsoletos.

Cuando se reemplaza en una clase descendiente, obtiene el objeto de fábrica derivado de la clase IWebRequestCreate utilizada para crear la WebRequest creada para realizar la solicitud en el URI especificado.

(Heredado de WebRequest)
Credentials

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

Date

Obtiene o establece el Date valor de encabezado HTTP 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 HTTP.

DefaultMaximumResponseHeadersLength

Obtiene o establece el valor predeterminado de la propiedad MaximumResponseHeadersLength.

Expect

Obtiene o establece el valor del encabezado HTTP de 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 URI de solicitud.

IfModifiedSince

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

ImpersonationLevel

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

(Heredado de WebRequest)
KeepAlive

Obtiene o establece un valor que indica si se debe realizar una conexión persistente al recurso de Internet.

MaximumAutomaticRedirections

Obtiene o establece el número máximo de redireccionamientos que sigue la solicitud.

MaximumResponseHeadersLength

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

MediaType

Obtiene o establece el tipo de medio de la solicitud.

Method

Obtiene o establece el método para la solicitud.

Pipelined

Obtiene o establece un valor que indica si se canaliza la solicitud al recurso de Internet.

PreAuthenticate

Obtiene o establece un valor que indica si se va a enviar un encabezado authorization con la solicitud.

PreAuthenticate

Cuando se invalida en una clase descendiente, indica si se debe autenticar previamente la solicitud.

(Heredado de WebRequest)
ProtocolVersion

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

Proxy

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

Proxy

Cuando se invalida en una clase descendiente, obtiene o establece el proxy de red que se usará para acceder a este recurso de Internet.

(Heredado de WebRequest)
ReadWriteTimeout

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

Referer

Obtiene o establece el valor del encabezado HTTP de Referer.

RequestUri

Obtiene el identificador uniforme de recursos (URI) original de la solicitud.

SendChunked

Obtiene o establece un valor que indica si se deben enviar 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 usar para la solicitud.

SupportsCookieContainer

Obtiene un valor que indica si la solicitud proporciona compatibilidad con 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 período de tiempo, en milisegundos, antes de que se agote el tiempo de espera de la solicitud.

(Heredado de WebRequest)
TransferEncoding

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

UnsafeAuthenticatedConnectionSharing

Obtiene o establece un valor que indica si se va a permitir el uso compartido de conexiones autenticado con NTLM de alta velocidad.

UseDefaultCredentials

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

UseDefaultCredentials

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

(Heredado de WebRequest)
UserAgent

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

Métodos

Abort()

Cancela una solicitud a 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 desde el principio o el 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 desde el principio o el final de los datos solicitados.

AddRange(String, Int64, Int64)

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

BeginGetRequestStream(AsyncCallback, Object)

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

BeginGetResponse(AsyncCallback, Object)

Comienza una solicitud asincrónica a un recurso de Internet.

CreateObjRef(Type)

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

(Heredado de MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

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

EndGetRequestStream(IAsyncResult, TransportContext)

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

EndGetResponse(IAsyncResult)

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

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Devuelve un valor hash para una instancia de WebRequest.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

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)
Obsoletos.
Obsoletos.
Obsoletos.

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

GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

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

(Heredado de WebRequest)
GetRequestStream()

Obtiene un objeto Stream que se va a usar para escribir datos de solicitud.

GetRequestStream()

Cuando se invalida en una clase descendiente, devuelve un 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 datos de solicitud y genera el TransportContext asociado a la secuencia.

GetRequestStreamAsync()

Cuando se invalida en una clase descendiente, devuelve un 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 reemplaza 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()
Obsoletos.

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 Objectactual.

(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)
Obsoletos.
Obsoletos.
Obsoletos.

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

Métodos de extensión

GetRequestMetadata(HttpWebRequest)

Obtiene metadatos para las solicitudes salientes que se usarán con fines de telemetría.

SetRequestMetadata(HttpWebRequest, RequestMetadata)

Establece los metadatos para las solicitudes salientes que se usarán con fines de telemetría.

Se aplica a

Consulte también