Поделиться через


WebClient.Headers Свойство

Определение

Возвращает или задает коллекцию пар имени заголовка и значения, связанных с запросом.

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

Значение свойства

WebHeaderCollection с парами заголовков и значений, связанных с этим запросом.

Примеры

В следующем примере кода используется коллекция Headers для задания заголовка HTTP Content-Typeapplication/x-www-form-urlencoded, для уведомления сервера о присоединении данных формы к записи.

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

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Свойство Headers содержит экземпляр WebHeaderCollection, содержащий заголовки протокола, которые WebClient отправляет запрос.

Некоторые распространенные заголовки считаются ограниченными и защищены системой и не могут быть заданы или изменены в объекте WebHeaderCollection. Любая попытка задать один из этих ограниченных заголовков в объекте WebHeaderCollection, связанном с объектом WebClient, вызовет исключение позже при попытке отправить запрос WebClient.

Ограниченные заголовки, защищенные системой, но не ограничены следующими:

  • Дата

  • Хозяин

Кроме того, некоторые другие заголовки также ограничены при использовании объекта WebClient. Эти ограниченные заголовки включают в себя, но не ограничиваются следующими:

  • Принимать

  • Связь

  • Длина содержимого

  • Ожидается (если для значения задано значение "100-continue"

  • If-Modified-Since

  • Диапазон

  • Transfer-Encoding

Класс HttpWebRequest имеет свойства для настройки некоторых из приведенных выше заголовков. Если для приложения важно задать эти заголовки, то вместо класса WebRequest следует использовать класс HttpWebRequest.

Не следует предположить, что значения заголовков останутся неизменными, так как веб-серверы и кэши могут изменять или добавлять заголовки в веб-запрос.

Применяется к

См. также раздел