using System.Net; using System.Text.Json; /// /// Servizio per interagire con l'API OMDB. /// Semplifica le richieste per ottenere dettagli sui film. /// class OmdbService { private readonly string url; public OmdbService() { var apiKey = File.ReadAllText("APIKey.txt").Trim(); apiKey = WebUtility.UrlEncode(apiKey); url = "http://www.omdbapi.com/?apikey=" + apiKey + "&type=movie" + "&r=json"; } /// /// Recupera i dettagli di un film dato il suo ID IMDB. /// /// ID IMDB del film da cercare. /// Un oggetto Movie con i dettagli del film. public async Task FetchMovieDetail(string id) { var requestUrl = url + "&i=" + WebUtility.UrlEncode(id); using var httpClient = new HttpClient(); var response = await httpClient.GetStringAsync(requestUrl); return JsonSerializer.Deserialize(response)!; } /// /// Recupera una lista di film che corrispondono al titolo di ricerca. /// /// Titolo dei film da cercare. /// >Una lista di oggetti Movie che corrispondono alla ricerca. public async Task FetchMovies(string searchTitle) { var requestUrl = url + "&s=" + WebUtility.UrlEncode(searchTitle); using var httpClient = new HttpClient(); var response = await httpClient.GetStringAsync(requestUrl); return JsonSerializer.Deserialize(response)!; } }