Export (0) Print
Expand All

WebHeaderCollection.IsRestricted Method (String)

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
)

Parameters

headerName
Type: System.String

The header to test.

Return Value

Type: System.Boolean
true if the header is restricted; otherwise false.

ExceptionCondition
ArgumentNullException

headerName is null or Empty.

ArgumentException

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. 
			if(WebHeaderCollection.IsRestricted(myWebHeaderCollection.AllKeys[i]))
				Console.WriteLine("'{0}' is a restricted header", myWebHeaderCollection.AllKeys[i]);
			else
				Console.WriteLine("'{0}' is not a restricted header", myWebHeaderCollection.AllKeys[i]);
			}
			myHttpWebResponse.Close();
		}
		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

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft