WebClient.Headers Propriété

Définition

Obtient ou définit une collection de paires nom/valeur d’en-tête associées à la requête.

public:
 property System::Net::WebHeaderCollection ^ Headers { System::Net::WebHeaderCollection ^ get(); void set(System::Net::WebHeaderCollection ^ value); };
public System.Net.WebHeaderCollection Headers { get; set; }
member this.Headers : System.Net.WebHeaderCollection with get, set
Public Property Headers As WebHeaderCollection

Valeur de propriété

Une WebHeaderCollection contenant des paires nom/valeur d’en-tête associées à cette requête.

Exemples

L’exemple de code suivant utilise la collection Headers pour définir l’en-tête HTTP Content-Type sur application/x-www-form-urlencoded, pour avertir le serveur auquel les données de formulaire sont attachées au billet.

String^ uriString;
Console::Write( "\nPlease enter the URI to post data to {for example, http://www.contoso.com}: " );
uriString = Console::ReadLine();

// Create a new WebClient instance.
WebClient^ myWebClient = gcnew WebClient;
Console::WriteLine( "\nPlease enter the data to be posted to the URI {0}:", uriString );
String^ postData = Console::ReadLine();
myWebClient->Headers->Add( "Content-Type", "application/x-www-form-urlencoded" );

// Displays the headers in the request
Console::Write( "Resulting Request Headers: ");
Console::WriteLine(myWebClient->Headers);

// Apply ASCII Encoding to obtain the String^ as a Byte array.
array<Byte>^ byteArray = Encoding::ASCII->GetBytes( postData );
Console::WriteLine( "Uploading to {0} ...", uriString );
// Upload the input String* using the HTTP 1.0 POST method.
array<Byte>^responseArray = myWebClient->UploadData( uriString, "POST", byteArray );
// Decode and display the response.
Console::WriteLine( "\nResponse received was {0}",
   Encoding::ASCII->GetString( responseArray ) );
   string uriString;
       Console.Write("\nPlease enter the URI to post data to {for example, http://www.contoso.com} : ");
       uriString = Console.ReadLine();

       // Create a new WebClient instance.
       WebClient myWebClient = new WebClient();
       Console.WriteLine("\nPlease enter the data to be posted to the URI {0}:",uriString);
       string postData = Console.ReadLine();
       myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");

 // Display the headers in the request
       Console.Write("Resulting Request Headers: ");
       Console.WriteLine(myWebClient.Headers.ToString());
       
       // Apply ASCII Encoding to obtain the string as a byte array.

       byte[] byteArray = Encoding.ASCII.GetBytes(postData);
       Console.WriteLine("Uploading to {0} ...",  uriString);						
       // Upload the input string using the HTTP 1.0 POST method.
       byte[] responseArray = myWebClient.UploadData(uriString,"POST",byteArray);
       
       // Decode and display the response.
       Console.WriteLine("\nResponse received was {0}",
       Encoding.ASCII.GetString(responseArray));
                 
Dim uriString As String
Console.Write(ControlChars.Cr + "Please enter the URI to post data to{for example, http://www.contoso.com} : ")
uriString = Console.ReadLine()

' Create a new WebClient instance.
Dim myWebClient As New WebClient()
Console.WriteLine(ControlChars.Cr + "Please enter the data to be posted to the URI {0}:", uriString)
Dim postData As String = Console.ReadLine()
myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded")

' Display the headers in the request
Console.Write("Resulting Request Headers: ")
Console.Writeline(myWebClient.Headers.ToString())

' Apply ASCII Encoding to obtain the string as a byte array.
Dim byteArray As Byte() = Encoding.ASCII.GetBytes(postData)
Console.WriteLine("Uploading to {0} ...", uriString)
' Upload the input string using the HTTP 1.0 POST method.
Dim responseArray As Byte() = myWebClient.UploadData(uriString, "POST", byteArray)
' Decode and display the response.
Console.WriteLine(ControlChars.Cr + "Response received was :{0}", Encoding.ASCII.GetString(responseArray))

Remarques

Prudence

WebRequest, HttpWebRequest, ServicePointet WebClient sont obsolètes et vous ne devez pas les utiliser pour le nouveau développement. Utilisez HttpClient à la place.

La propriété Headers contient une instance WebHeaderCollection contenant des en-têtes de protocole que le WebClient envoie avec la requête.

Certains en-têtes courants sont considérés comme restreints et protégés par le système et ne peuvent pas être définis ou modifiés dans un objet WebHeaderCollection. Toute tentative de définition de l’un de ces en-têtes restreints dans l’objet WebHeaderCollection associé à un objet WebClient lève une exception ultérieurement lors de la tentative d’envoi de la demande de WebClient.

Les en-têtes restreints protégés par le système incluent, mais ne sont pas limités aux éléments suivants :

  • Date

  • Hôte

En outre, d’autres en-têtes sont également limités lors de l’utilisation d’un objet WebClient. Ces en-têtes restreints incluent, mais ne sont pas limités aux éléments suivants :

  • Accepter

  • Connexion

  • Longueur du contenu

  • Attendez-vous (lorsque la valeur est définie sur « 100-continue »

  • If-Modified-Since

  • Gamme

  • Transfer-Encoding

La classe HttpWebRequest a des propriétés pour définir certains en-têtes ci-dessus. S’il est important qu’une application définisse ces en-têtes, la classe HttpWebRequest doit être utilisée au lieu de la classe WebRequest.

Vous ne devez pas supposer que les valeurs d’en-tête restent inchangées, car les serveurs web et les caches peuvent changer ou ajouter des en-têtes à une requête Web.

S’applique à

Voir aussi