다음을 통해 공유


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, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

Headers 속성에는 WebClient 요청과 함께 보내는 프로토콜 헤더가 포함된 WebHeaderCollection 인스턴스가 포함되어 있습니다.

일부 일반적인 헤더는 제한된 것으로 간주되며 시스템에 의해 보호되며 WebHeaderCollection 개체에서 설정하거나 변경할 수 없습니다. WebClient 개체와 연결된 WebHeaderCollection 개체에서 이러한 제한된 헤더 중 하나를 설정하려고 하면 나중에 WebClient 요청을 보내려고 할 때 예외가 throw됩니다.

시스템에 의해 보호되는 제한된 헤더는 포함되지만 다음으로 제한되지는 않습니다.

  • 날짜

  • 호스트

또한 일부 다른 헤더는 WebClient 개체를 사용할 때도 제한됩니다. 이러한 제한된 헤더에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 받아들이다

  • 연결

  • 콘텐츠 길이

  • 예상(값이 "100-continue"로 설정된 경우)

  • If-Modified-Since

  • 레인지

  • Transfer-Encoding

HttpWebRequest 클래스에는 위의 헤더 중 일부를 설정하기 위한 속성이 있습니다. 애플리케이션에서 이러한 헤더를 설정하는 것이 중요한 경우 WebRequest 클래스 대신 HttpWebRequest 클래스를 사용해야 합니다.

웹 서버와 캐시가 웹 요청에 헤더를 변경하거나 추가할 수 있으므로 헤더 값이 변경되지 않은 상태로 유지된다고 가정해서는 안 됩니다.

적용 대상

추가 정보