HttpWebRequest Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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
, ServicePoint
y 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. |