示例#1
0
        public async Task <Data.WeatherForecast> GetWeatherAsync()
        {
            Logger.LogInformation("BackendUrl: {BackendUrl}", _settings.BackendUrl);

            Data.WeatherForecast forecast = new Data.WeatherForecast()
            {
                Id           = -1,
                Date         = DateTime.Now,
                Summary      = $"New HttpClient to {_settings.BackendUrl}",
                TemperatureC = 0
            };

            Logger.LogInformation("new HttpClient");

            var client = new HttpClient
            {
                BaseAddress = new Uri(_settings.BackendUrl)
            };

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            HttpResponseMessage response;

            try
            {
                Logger.LogInformation("client.GetAsync(/api/WeatherForecast)");
                response = await client.GetAsync("/api/WeatherForecast");

                Logger.LogInformation("client.GetAsync(/api/WeatherForecast) PASS");
            }
            catch (Exception ex)
            {
                Logger.LogError("client.GetAsync(/api/WeatherForecast) FAIL {Message}", ex.Message);
                forecast.Summary = ex.Message;

                return(forecast);
            }

            if (response != null && response.IsSuccessStatusCode)
            {
                Logger.LogInformation("ReadFromJsonAsync");
                var forecasts = await response.Content.ReadFromJsonAsync <IEnumerable <Data.WeatherForecast> >();

                Logger.LogInformation("First or Default");
                forecast = forecasts.FirstOrDefault();
                Logger.LogInformation("Done");
            }
            else
            {
                Logger.LogWarning("Unexpected response: {StatusCode}", response.StatusCode);
                forecast.Summary = $"Unexpected statusCode: {response.StatusCode}";
            }

            return(forecast);
        }
示例#2
0
        public async Task <Data.WeatherForecast> GetWeatherAsync()
        {
            var client = new HttpClient
            {
                BaseAddress = new Uri(_settings.BackendUrl)
            };

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            Data.WeatherForecast forecast = null;

            HttpResponseMessage response = null;

            try
            {
                response = await client.GetAsync("/api/WeatherForecast");
            }
            catch (Exception ex)
            {
                forecast = new Data.WeatherForecast()
                {
                    Id           = -1,
                    Date         = DateTime.Now,
                    TemperatureC = 0,
                    Summary      = ex.Message
                };

                return(forecast);
            }

            if (response != null && response.IsSuccessStatusCode)
            {
                var forecasts = await response.Content.ReadFromJsonAsync <IEnumerable <Data.WeatherForecast> >();

                forecast = forecasts.FirstOrDefault();
            }

            return(forecast);
        }
示例#3
0
        public async Task <Data.WeatherForecast> GetWeatherAsync()
        {
            var client = new HttpClient();

            client.BaseAddress = new Uri(_settings.BackendUrl);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            Data.WeatherForecast forecast = null;

            HttpResponseMessage response = await client.GetAsync("/api/WeatherForecast");

            if (response.IsSuccessStatusCode)
            {
                var forecasts = await response.Content.ReadFromJsonAsync <IEnumerable <Data.WeatherForecast> >();

                forecast = forecasts.FirstOrDefault();
            }

            return(forecast);
        }