Exemplo n.º 1
0
        public async Task <TEntity> HandleGetRequest <TEntity>(string requestUrl)
        {
            if (string.IsNullOrWhiteSpace(requestUrl))
            {
                throw new ArgumentNullException(nameof(requestUrl));
            }

            using (var request = new HttpRequestMessage(HttpMethod.Get, requestUrl))
                using (var response = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, new CancellationToken()))
                {
                    var stream = await response.Content.ReadAsStreamAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        var result = StreamUtilities.DeserializeJsonFromStream <TEntity>(stream);

                        return(result);
                    }

                    var content = await StreamUtilities.StreamToStringAsync(stream);

                    throw new ApiException
                          {
                              StatusCode = (int)response.StatusCode,
                              Content    = content
                          };
                }
        }