2016-05-31 3 views
1

Ich habe diesen Aufruf API:Wie kann ich den Wert der Schlüssel in einem Wörterbuchobjekt herausfinden?

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

Hier ist die Klasse für die 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; } 
} 

Ich habe kein Problem, den Leib bekommen (response.Body) oder den Kodex aber was würde Ich mag tun ist es, diesen Header zu bekommen:

Kann mir jemand sagen, wie ich die Antwort überprüfen und den Wert der 01 herausfinden könnte?

+1

Wie etwa: 'response.Headers [" X-Ratelimit -Anfragen-Verbleibende "]'? Du weißt also, wie Wörterbücher funktionieren, ja? – ckruczek

+0

Was ist das "Unreife" und warum folgen seine Methoden nicht den .NET-Namenskonventionen? –

+0

@MattiVirkkunen Es ist eine [leichte HTTP-Anforderungsbibliothek] (http://unirest.io/net.html) und die Benennung ist wahrscheinlich auf Kompatibilität mit anderen unterstützten Sprachen zurückzuführen. –

Antwort

4

Wörterbücher haben eine so genannte indexer. Der Datentyp Ihres Indexers ist der Datentyp Ihres Key (Dictionary<Key,Value>).

Indexer sind ähnlich Eigenschaft Getter und Setter und werden wie folgt umgesetzt:

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; } 
} 

In Ihrem Fall wäre das:

// "Key" is just an example, use "X-RateLimit-requests-Remaining" instead ;) 
response.Headers["Key"]; 
Verwandte Themen