WebHeaderCollection.IsRestricted Method (String, Boolean)


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

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

Public Shared Function IsRestricted (
	headerName As String,
	response As Boolean
) As Boolean


Type: System.String

The header to test.

Type: System.Boolean

Does the Framework test the response or the request?

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 request or response 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 request headers are prohibited from being set.

   Public Shared Sub Main()
           'Create a web request for "www.msn.com".
           Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create("http://www.msn.com"), HttpWebRequest)

           'Get the associated response for the above request.
           Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)

           'Get the headers associated with the response.
           Dim myWebHeaderCollection As WebHeaderCollection = myHttpWebResponse.Headers

           'Check if the first response header is restricted.
    dim i as integer
    for i =0 to myWebHeaderCollection.Count-1
            If WebHeaderCollection.IsRestricted(myWebHeaderCollection.AllKeys(i)) Then
                Console.WriteLine("'{0}' is a restricted header", myWebHeaderCollection.AllKeys(i))
                Console.WriteLine("'{0}' is not a restricted header", myWebHeaderCollection.AllKeys(i))
            End If 
       Catch e As WebException
           If e.Status = WebExceptionStatus.ProtocolError Then
               Console.WriteLine("Status Code : {0}", CType(e.Response, HttpWebResponse).StatusCode)
               Console.WriteLine("Status Description : {0}", CType(e.Response, HttpWebResponse).StatusDescription)
               Console.WriteLine("Server : {0}", CType(e.Response, HttpWebResponse).Server)
           End If
       Catch e As Exception
       End Try
   End Sub 'Main

.NET Framework
Available since 2.0
Return to top