WebHeaderCollection.GetKey(Int32) Method

Definition

Gets the header name at the specified position in the collection.

C#
public override string GetKey(int index);

Parameters

index
Int32

The zero-based index of the key to get from the collection.

Returns

A String holding the header name.

Exceptions

index is negative.

-or-

index exceeds the size of the collection.

Examples

The following code example uses GetKey to get a header name in a WebHeaderCollection.

C#
if (args.Length == 0)
{
    Console.WriteLine("must specify a URL!");
    return;
}
string server = args[0];

// Create the web request 
HttpWebRequest myHttpWebRequest = 
    (HttpWebRequest) WebRequest.Create(server);
myHttpWebRequest.Timeout = 1000;
// 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++)
{
    String header = myWebHeaderCollection.GetKey(i);
    String[] values = 
        myWebHeaderCollection.GetValues(header);
    if(values.Length > 0) 
    {
        Console.WriteLine("The values of {0} header are : "
                         , header);
        for(int j = 0; j < values.Length; j++) 
            Console.WriteLine("\t{0}", values[j]);
    }
    else
        Console.WriteLine("There is no value associated" +
            "with the header");
}
Console.WriteLine("");

// Get the headers again, using new properties (Keys, 
// AllKeys, Clear) and methods (Get and GetKey)

string[] headers = myWebHeaderCollection.AllKeys;

// enumerate through the header collection.
foreach (string s in headers)
{
    Console.WriteLine("Header {0}, value {1}",
        s,
        myWebHeaderCollection.Get(s) );
}

Console.WriteLine("");

// show the use of Get(Int32) and GetValue(Int32)
if (myWebHeaderCollection.Count > 0)
{
    // get the name and value of the first header
    int index=0;
    Console.WriteLine("Header {0}: name {1}, value {2}",
        index, 
        myWebHeaderCollection.GetKey(index),
        myWebHeaderCollection.Get(index));
}

myWebHeaderCollection.Clear();

myHttpWebResponse.Close();

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1