diff --git a/Jugenddienst Stunden/Models/Auth.cs b/Jugenddienst Stunden/Models/Auth.cs index 5cf2999..f464a96 100644 --- a/Jugenddienst Stunden/Models/Auth.cs +++ b/Jugenddienst Stunden/Models/Auth.cs @@ -4,37 +4,56 @@ using System.Text; using System.Threading.Tasks; using ZXing.QrCode.Internal; -namespace Jugenddienst_Stunden.Models -{ - - class Auth - { +namespace Jugenddienst_Stunden.Models { + + class Auth { public Hours hours; public static async Task GetApiDataWithAuthAsync(string url, string token) { - using (HttpClient client = new HttpClient()) { - try { - client.DefaultRequestHeaders.Add("Accept", "application/json"); + try { + // Erstellen eines HttpClient-Objekts + using (HttpClient client = new HttpClient() { Timeout = TimeSpan.FromSeconds(5) }) { + try { - // Hinzufügen des Bearer-Tokens zum Authorization-Header - client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); + client.DefaultRequestHeaders.Add("Accept", "application/json"); - // Senden der Anfrage und Abrufen der Antwort - HttpResponseMessage response = await client.GetAsync(url); + // Hinzufügen des Bearer-Tokens zum Authorization-Header + client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); - // Überprüfen, ob die Anfrage erfolgreich war - response.EnsureSuccessStatusCode(); + //Beim Debugging im Lokalen Netz mit meinem Smartphone kommt es hier zu + //system.net.webexception nachricht = socket closed + //Grund: Falscher DNS-Server liefert falsche Server-IP - // Lesen und Rückgabe der Antwort als String - string responseData = await response.Content.ReadAsStringAsync(); - return responseData; - } catch (HttpRequestException e) { - // Fehlerbehandlung - Console.WriteLine($"An error occurred: {e.Message}"); - return null; + using (HttpResponseMessage HttpResponseMessage = await client.GetAsync(url).ConfigureAwait(false)) { + if (HttpResponseMessage.StatusCode == System.Net.HttpStatusCode.OK) { + using (HttpContent HttpContent = HttpResponseMessage.Content) { + string responseData = await HttpContent.ReadAsStringAsync(); + return responseData; + } + } + } + + // Senden der Anfrage und Abrufen der Antwort + //HttpResponseMessage response = await client.GetAsync(url); + + // Überprüfen, ob die Anfrage erfolgreich war + //response.EnsureSuccessStatusCode(); + + // Lesen und Rückgabe der Antwort als String + //string responseData = await response.Content.ReadAsStringAsync(); + //return responseData; + } catch (HttpRequestException e) { + // Fehlerbehandlung + Console.WriteLine($"An error occurred: {e.Message}"); + return null; + } } + } catch (Exception e) { + Console.WriteLine(e.Message); + return null; } + return null; } public static async Task Main(string[] args) {