public async Task <T> GetStreamAsync <T>(string url) { var cancelToken = new CancellationTokenSource(); using (var request = new HttpRequestMessage(HttpMethod.Get, url)) using (var response = await Client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancelToken.Token)) { var stream = await response.Content.ReadAsStreamAsync(); if (response.IsSuccessStatusCode) { return(StreamHandler.DeserializeJsonFromStream <T>(stream)); } var content = await StreamHandler.StreamToStringAsync(stream); throw new ApiException { StatusCode = (int)response.StatusCode, Content = content }; } }