Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

WebHeaderCollection.IsRestricted Method

Tests whether the specified HTTP header can be set.

[Visual Basic]
Public Shared Function IsRestricted( _
   ByVal headerName As String _
) As Boolean
[C#]
public static bool IsRestricted(
 string headerName
);
[C++]
public: static bool IsRestricted(
 String* headerName
);
[JScript]
public static function IsRestricted(
   headerName : String
) : Boolean;

Parameters

headerName
The header to test.

Return Value

true if the header is restricted; otherwise false.

Exceptions

Exception Type Condition
ArgumentNullException headerName is a null reference (Nothing in Visual Basic) or Empty.
ArgumentException headerName contains invalid characters.

Remarks

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

Example

[Visual Basic, C#, C++] The following example checks the IsRestricted property to see if any headers are prohibited from being set.

[Visual Basic] 
Public Shared Sub Main()
Try
        '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 restriced.
    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))
            Else
                Console.WriteLine("'{0}' is not a restricted header", myWebHeaderCollection.AllKeys(i))
            End If 
    next
    myHttpWebResponse.Close()
    Catch e As WebException
        Console.WriteLine(e.Message)
        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
        Console.WriteLine(e.Message)
    End Try
End Sub 'Main

[C#] 
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 restriced.
    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);
}

    }

[C++] 
try {
   // Create a web request for S"www.msn.com".
   HttpWebRequest* myHttpWebRequest =
      dynamic_cast<HttpWebRequest*> (WebRequest::Create(S"http://www.msn.com"));

   // Get the associated response for the above request.
   HttpWebResponse* myHttpWebResponse =
      dynamic_cast<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 restriced.
      if (WebHeaderCollection::IsRestricted(dynamic_cast<String __gc *>(myWebHeaderCollection->AllKeys->Item[i])))
         Console::WriteLine(S"' {0}' is a restricted header",
         myWebHeaderCollection->AllKeys->Item[i]);
      else
         Console::WriteLine(S"' {0}' is not a restricted header",
         myWebHeaderCollection->AllKeys->Item[i]);
   }
   myHttpWebResponse->Close();
} catch (WebException* e) {
   Console::WriteLine(S"\nWebException is thrown.\nMessage is: {0}", e->Message);
   if (e->Status == WebExceptionStatus::ProtocolError) {
      Console::WriteLine(S"Status Code : {0}", __box((dynamic_cast<HttpWebResponse*>(e->Response))->StatusCode));
      Console::WriteLine(S"Status Description : {0}", (dynamic_cast<HttpWebResponse*>(e->Response))->StatusDescription);
      Console::WriteLine(S"Server : {0}", (dynamic_cast<HttpWebResponse*>(e->Response))->Server);
   }
} catch (Exception* e) {
   Console::WriteLine(S"Exception is thrown. Message is : {0}", e->Message);
}
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

See Also

WebHeaderCollection Class | WebHeaderCollection Members | System.Net Namespace

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.