Condividi tramite


HttpWebRequest.Headers Proprietà

Definizione

Specifica una raccolta delle coppie nome/valore che costituiscono le intestazioni 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

Valore della proprietà

Un WebHeaderCollection che contiene le coppie nome/valore che costituiscono le intestazioni per la richiesta HTTP.

Eccezioni

Esempio

Nell'esempio di codice seguente viene utilizzata la proprietà Headers per stampare le coppie nome/valore dell'intestazione HTTP nella console.

// 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 = gcnew StreamReader( streamResponse );
array<Char>^ readBuff = gcnew array<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 = gcnew String( readBuff,0,count );
   Console::Write( outputData );
   count = streamRead->Read( readBuff, 0, 256 );
}
streamResponse->Close();
streamRead->Close();
// Release the HttpWebResponse Resource.
myHttpWebResponse->Close();
// 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()

Commenti

Cautela

WebRequest, HttpWebRequest, ServicePointe WebClient sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.

L'insieme Headers contiene le intestazioni del protocollo associate alla richiesta. Nella tabella seguente sono elencate le intestazioni HTTP non archiviate nella raccolta Headers, ma impostate dal sistema o impostate da proprietà o metodi.

Intestazione Impostato da
Accettare Impostato dalla proprietà Accept.
Connessione Impostata dalla proprietà Connection e dalla proprietà KeepAlive.
Lunghezza contenuto Impostato dalla proprietà ContentLength.
Tipo di contenuto Impostato dalla proprietà ContentType.
Aspettare Impostato dalla proprietà Expect.
Dattero Impostato dalla proprietà Date.
Ospite Impostato dalla proprietà Host.
If-Modified-Since Impostato dalla proprietà IfModifiedSince.
Gamma Impostato dal metodo AddRange.
Referer Impostato dalla proprietà Referer.
Transfer-Encoding Impostato dalla proprietà TransferEncoding (la proprietà SendChunked deve essere true).
User-Agent Impostato dalla proprietà UserAgent.

Il metodo Add genera un ArgumentException se si tenta di impostare una di queste intestazioni protette.

La modifica della proprietà Headers dopo l'avvio della richiesta chiamando GetRequestStream, BeginGetRequestStream, GetResponseo BeginGetResponse metodo genera un InvalidOperationException.

Non è consigliabile presupporre che i valori dell'intestazione rimangano invariati, perché i server Web e le cache possono modificare o aggiungere intestazioni a una richiesta Web.

Si applica a