WebHeaderCollection.IsRestricted Method (String)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Tests whether the specified HTTP header can be set for the request.

Namespace:   System.Net
Assembly:  System (in System.dll)

public static bool IsRestricted(
	string headerName


Type: System.String

The header to test.

Return Value

Type: System.Boolean

true if the header is restricted; otherwise false.

Exception Condition

headerName is null or Empty.


headerName contains invalid characters.

The IsRestricted method returns true to indicate that a header is restricted and must be set using properties instead of directly or is set by the system. The restricted headers are:

  • Accept

  • Connection

  • Content-Length

  • Content-Type

  • Date

  • Expect

  • Host

  • If-Modified-Since

  • Range

  • Referer

  • Transfer-Encoding

  • User-Agent

  • Proxy-Connection

The following example checks the IsRestricted property to see if any headers are prohibited from being set.

	try {
		// Create a web request for "www.msn.com".
	 	HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create("http://www.msn.com");

		// Get the associated response for the above request.
	 	HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();

		// Get the headers associated with the response.
		WebHeaderCollection myWebHeaderCollection = myHttpWebResponse.Headers;

		for (int i = 0; i < myWebHeaderCollection.Count;i++)	
 			// Check if the first response header is restricted.
			Console.WriteLine("'{0}' is a restricted header", myWebHeaderCollection.AllKeys[i]);
			Console.WriteLine("'{0}' is not a restricted header", myWebHeaderCollection.AllKeys[i]);
	catch(WebException e) {
		Console.WriteLine("\nWebException is thrown.\nMessage is:" + e.Message);
		if(e.Status == WebExceptionStatus.ProtocolError) {
			Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
			Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
			Console.WriteLine("Server : {0}", ((HttpWebResponse)e.Response).Server);
	catch(Exception e) {
		Console.WriteLine("Exception is thrown. Message is :" + e.Message);


.NET Framework
Available since 1.1
Return to top