Dekompresowanie strumienia GZip z odpowiedzi HTTPClient
Usiłuję połączyć się z api, która zwraca kodowane GZip JSON, z usługi WCF (usługa WCF do usługi WCF). UżywamHTTPClient połączyć się z interfejsem API i móc zwrócić obiekt JSON jako łańcuch. Muszę jednak być w stanie przechowywać te zwrócone dane w bazie danych i uznałem, że najlepszym sposobem byłoby zwrócenie i zapisanie obiektu JSON w tablicy lub bajcie lub coś podobnego.
W szczególności mam problem z dekompresją kodowania GZip i próbowałem wielu różnych przykładów, ale wciąż nie mogę go uzyskać.
Poniższy kod opisuje, w jaki sposób nawiązuję połączenie i otrzymuję odpowiedź. Jest to kod, który zwraca ciąg znaków z interfejsu 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 "";
}
}
Śledziłem kilka takich przykładówStackExchange API, MSDN, i para na stackoverflow, ale nie udało mi się uzyskać żadnej z nich, aby działała dla mnie.
Jaki jest najlepszy sposób, aby to osiągnąć, czy jestem na dobrej drodze?
Dzięki chłopaki.