2016-09-16 13 views
1

林能夠逐一得到請求頭時,我有一個標頭鍵名用這種方法如何填寫詞典的所有請求頭

private string GetHeader(string Name) 
{ 
    IEnumerable<string> headerValues; 
    if (Request.Headers.TryGetValues(Name, out headerValues)) 
    { 
     return headerValues.FirstOrDefault(); 
    } 
    else { return ""; } 
} 

但我真正想是讓所有請求頭並將它們存儲在字典中,像這樣的東西

Dictionary<string, string> ss = Request.Headers.ToDictionary(a => a.Key, a => a.Value); 
//this doesn't work 

有沒有人知道如何做到這一點?

回答

6

您可以已經枚舉所有標頭值,因爲Request.Headers類型爲HttpRequestHeadersIEnumerable<KeyValuePair<string, IEnumerable<string>>>

所以價值是IEnumerable<string>和你Dictionary必須改變以

Dictionary<string, IEnumerable<string>> ss 
     = Request.Headers.ToDictionary(a => a.Key, a => a.Value); 

,或者如果你想堅持的字符串值,你可以加入字符串枚舉。

Dictionary<string, string> ss 
     = Request.Headers.ToDictionary(a => a.Key, a => string.Join(";", a.Value)); 
+0

非常感謝!當然,這是一個IEnuerable ..我怎麼能錯過...感謝共享 –