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-Type
application/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.
Не следует предположить, что значения заголовков останутся неизменными, так как веб-серверы и кэши могут изменять или добавлять заголовки в веб-запрос.