-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWeatherService.cs
41 lines (32 loc) · 1.09 KB
/
WeatherService.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using WeatherAPI.DTOs;
namespace WeatherAPI
{
public class WeatherService
{
private readonly string APIKey = "4c8aa095e62b406eb71211822202311";
private readonly HttpClient _httpClient;
public WeatherService(HttpClient httpClient)
{
_httpClient = httpClient;
_httpClient.BaseAddress =
new Uri("http://api.weatherapi.com/v1/current.json");
}
public async Task<CurrentWeatherInformation> GetCurrentWeatherByCity(string cityName)
{
string url = $"?key={APIKey}&q={cityName}";
HttpResponseMessage response = await _httpClient.GetAsync(url);
Stream responseBody = await response.Content.ReadAsStreamAsync();
var weatherApiDto =
await JsonSerializer.DeserializeAsync<CurrentWeatherInformation>(responseBody);
return weatherApiDto;
}
}
}