Entpacken von GZip-Stream von HTTPClient Antwort

Ich versuche, die Verbindung zu einem api, das gibt GZip-codierte JSON, die von einem WCF-service (WCF service WCF service). Ich bin mit dem HTTPClient Verbindung zu der API und in der Lage gewesen, die Rückkehr der JSON-Objekt in einen string. Aber ich muss in der Lage sein zu speichern zurückgegebenen Daten in einer Datenbank und als solche, ich dachte, der beste Weg wäre, um zurückzukehren und speichern Sie das JSON-Objekt eines Arrays oder byte-oder etwas entlang jenen Linien.

Was ich bin Probleme mit, die speziell ist das Dekomprimieren von GZip-Codierung und habe versucht, viele verschiedene Beispiel, aber kann immer noch nicht erhalten es.

Den code unten ist, wie ich mich zur Gründung meiner Verbindung und bekommen Sie eine Antwort, dies ist der code, gibt einen string zurück, aus der API.

public string getData(string foo)
{
    string url = "";
    HttpClient client = new HttpClient();
    HttpResponseMessage response;
    string responseJsonContent;
    try
    {
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        response = client.GetAsync(url + foo).Result;
        responseJsonContent = response.Content.ReadAsStringAsync().Result;
        return responseJsonContent;
    }
    catch (Exception ex)
    {
        System.Windows.Forms.MessageBox.Show(ex.Message);
        return "";
    }
}

Habe ich nach ein paar verschiedene Beispiele, wie diese StackExchange-API, MSDN, und ein paar auf stackoverflow, aber ich habe nicht in der Lage zu bekommen, diesen für mich zu arbeiten.

Was ist der beste Weg, dies zu erreichen, bin ich noch auf dem richtigen Weg?

Danke Jungs.

"der beste Weg wäre, um zurückzukehren und speichern Sie das JSON-Objekt eines Arrays oder byte -" Beachten Sie, dass ein string ist ein array von bytes.

InformationsquelleAutor Corey | 2014-01-08

Schreibe einen Kommentar