2016-05-31 61 views
1

我有這樣的API調用:如何找出字典對象中鍵的值?

HttpResponse<string> response = 
    Unirest.get("https://wordsapiv1.p.mashape.com/words/" + word.Name) 
    .header("X-Mashape-Key", "xxxx") 
    .header("Accept", "application/json") 
    .asJson<string>(); 

下面是HttpResponse類:

public class HttpResponse<T> 
{ 
    public HttpResponse(HttpResponseMessage response); 

    public T Body { get; set; } 
    public int Code { get; } 
    public Dictionary<string, string> Headers { get; } 
    public Stream Raw { get; } 
} 

我沒有問題得到機構(response.Body)或代碼,但我想做些什麼是得到這個標頭:

[7] = {[X-RateLimit-requests-Remaining, 2498]} 

有人可以告訴我怎麼可以檢查返回的響應,並找出值的X-RateLimit-requests-Remaining

+1

如何:'response.Headers [「X-RateLimit - 請求 - 剩餘「]'?所以你知道字典是如何工作的嗎? – ckruczek

+0

這是什麼'Unirest',爲什麼它的方法不遵循.NET命名約定? –

+0

@MattiVirkkunen這是一個[輕量級的HTTP請求庫](http://unirest.io/net.html),命名可能是由於兼容性原因與其他支持的語言。 –

回答

4

詞典有一些東西叫indexer。索引器的數據類型是KeyDictionary<Key,Value>)的數據類型。

索引器類似於屬性的getter和setter,並且這樣實現的:

public TValue this[TKey index] 
{ 
    // this will return when being called e.g. 'var x = dictionary[key];' 
    get { return whatever; } 

    // and here 'value' is whatever you pass to the setter e.g. 'dictionary[kex] = x;' 
    set { whatever = value; } 
} 

在你的情況下,這將是:

// "Key" is just an example, use "X-RateLimit-requests-Remaining" instead ;) 
response.Headers["Key"]; 
相關問題