HttpWebRequest.Headers Propiedad
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í.
Especifica una colección de los pares nombre-valor que componen los encabezados HTTP.
public:
virtual property System::Net::WebHeaderCollection ^ Headers { System::Net::WebHeaderCollection ^ get(); void set(System::Net::WebHeaderCollection ^ value); };
public override System.Net.WebHeaderCollection Headers { get; set; }
member this.Headers : System.Net.WebHeaderCollection with get, set
Public Overrides Property Headers As WebHeaderCollection
Valor de propiedad
que WebHeaderCollection contiene los pares nombre-valor que componen los encabezados de la solicitud HTTP.
Excepciones
La solicitud se ha iniciado llamando al GetRequestStream()método , BeginGetRequestStream(AsyncCallback, Object), GetResponse()o BeginGetResponse(AsyncCallback, Object) .
Ejemplos
En el ejemplo de código siguiente se usa la Headers propiedad para imprimir los pares nombre/valor del encabezado HTTP en la consola.
// Create a new 'HttpWebRequest' Object to the mentioned URL.
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
Console.WriteLine("\nThe HttpHeaders are \n\n\tName\t\tValue\n{0}",myHttpWebRequest.Headers);
// Print the HTML contents of the page to the console.
Stream streamResponse=myHttpWebResponse.GetResponseStream();
StreamReader streamRead = new StreamReader( streamResponse );
Char[] readBuff = new Char[256];
int count = streamRead.Read( readBuff, 0, 256 );
Console.WriteLine("\nThe HTML contents of page the are : \n\n ");
while (count > 0)
{
String outputData = new String(readBuff, 0, count);
Console.Write(outputData);
count = streamRead.Read(readBuff, 0, 256);
}
// Close the Stream object.
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse Resource.
myHttpWebResponse.Close();
' Create a new 'HttpWebRequest' Object to the mentioned URL.
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com"), HttpWebRequest)
' Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
Console.WriteLine(ControlChars.Cr + "The HttpHeaders are " + ControlChars.Cr + ControlChars.Cr + ControlChars.Tab + "Name" + ControlChars.Tab + ControlChars.Tab + "Value" + ControlChars.Cr + "{0}", myHttpWebRequest.Headers)
' Print the HTML contents of the page to the console.
Dim streamResponse As Stream = myHttpWebResponse.GetResponseStream()
Dim streamRead As New StreamReader(streamResponse)
Dim readBuff(256) As [Char]
Dim count As Integer = streamRead.Read(readBuff, 0, 256)
Console.WriteLine(ControlChars.Cr + "The HTML contents of page the are : " + ControlChars.Cr + ControlChars.Cr + " ")
While count > 0
Dim outputData As New [String](readBuff, 0, count)
Console.Write(outputData)
count = streamRead.Read(readBuff, 0, 256)
End While
' Close the Stream object.
streamResponse.Close()
streamRead.Close()
' Release the HttpWebResponse Resource.
myHttpWebResponse.Close()
Comentarios
Cautela
WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.
La Headers colección contiene los encabezados de protocolo asociados a la solicitud. En la tabla siguiente se enumeran los encabezados HTTP que no están almacenados en la Headers colección, pero que el sistema establece o establece mediante propiedades o métodos.
| Encabezado | Establecido por |
|---|---|
| Aceptar | Establézcalo por la Accept propiedad . |
| Conexión | Establezca por la propiedad y KeepAlive la Connection propiedad . |
| Longitud del contenido | Establézcalo por la ContentLength propiedad . |
| Tipo de contenido | Establézcalo por la ContentType propiedad . |
| Esperar | Establézcalo por la Expect propiedad . |
| Fecha | Establézcalo por la Date propiedad . |
| Anfitrión | Establézcalo por la Host propiedad . |
| If-Modified-Since | Establézcalo por la IfModifiedSince propiedad . |
| Gama | Establecido por el AddRange método . |
| Referer | Establézcalo por la Referer propiedad . |
| Transfer-Encoding | Establecido por la TransferEncoding propiedad (la SendChunked propiedad debe ser true). |
| User-Agent | Establézcalo por la UserAgent propiedad . |
El Add método produce un ArgumentException si intenta establecer uno de estos encabezados protegidos.
Al cambiar la Headers propiedad después de que se haya iniciado la solicitud, al llamar al GetRequestStreammétodo , BeginGetRequestStream, GetResponseo BeginGetResponse se produce una InvalidOperationExceptionexcepción .
No debe suponer que los valores de encabezado permanecerán sin cambios, ya que los servidores web y las memorias caché pueden cambiar o agregar encabezados a una solicitud web.