2015-10-26 5 views
0

Я немного запутался в том, как правильно десериализовать полезную нагрузку Gziped Json из экземпляра HttpClient.Использование сжатого JSON с использованием HttpClient и Jil

До сих пор я делаю следующее, но кажется неправильным. По крайней мере, слишком сложно. Не могу ли я передать поток Джилу? Разве HttpClient не может распаковать поток?

var client = new HttpClient(); 
var userEndPoint = new Uri(baseUri, "api/login"); 
var request = new HttpRequestMessage(); 
request.RequestUri = userEndPoint; 
request.Method = HttpMethod.Get; 
var response = _client.SendAsync(request).Result; 

var userGzipByteArray = response.Content.ReadAsByteArrayAsync().Result; 
var outStream = new MemoryStream(); 
using (var gzStream = new GZipStream(userGzipByteArray , CompressionMode.Decompress)) 
{ 
    gzStream.CopyTo(outStream); 
} 
var userByteArray = outStream.ToArray(); 
var userJson = userByteArray .ConvertToString(); 
var user = JSON.Deserialize<User>(userJson , Jil.Options.ISO8601PrettyPrintIncludeInherited); 

ответ