static async Task GetTimeout(string uri) { try { using (var httpClientHandler = new HttpClientHandler()) { httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return(true); }; using (var client = new HttpClient(httpClientHandler)) { client.BaseAddress = new Uri(uri); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var uriMethod = uri + "gettimeout/"; var responseLog = new ServerResponseLogDto(); responseLog.Starttime = DateTime.UtcNow; HttpResponseMessage response = await client.GetAsync(uriMethod); responseLog.Endtime = DateTime.UtcNow; responseLog.HttpStatus = (int)response.StatusCode; var responseText = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { //change to datetime local Console.WriteLine($"The WebAPI server date is: {responseText}"); responseLog.ResponseText = responseText; responseLog.ErrorCode = 1; } else if (response.StatusCode == HttpStatusCode.InternalServerError) { if (responseText.Contains("System.TimeoutException")) { responseLog.ResponseText = "System.TimeoutException"; responseLog.ErrorCode = -999; } else { responseLog.ResponseText = "Internal Service Error"; responseLog.ErrorCode = 2; } Console.WriteLine("Internal Service Error."); } else { responseLog.ResponseText = "Bad Request"; responseLog.ErrorCode = 2; } await AddLogRecord(responseLog); } } } catch { Console.WriteLine("Make sure to start the WebAPI"); } }
static async Task AddLogRecord(ServerResponseLogDto logDto) { try { using (var httpClientHandler = new HttpClientHandler()) { httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return(true); }; using (var client = new HttpClient(httpClientHandler)) { var uri = "https://localhost:5001/api/values/"; client.BaseAddress = new Uri(uri); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var json = JsonConvert.SerializeObject(logDto); HttpContent contentPost = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(uri, contentPost); //HttpResponseMessage response = await client.PostAsync(uri, contentPost); if (response.IsSuccessStatusCode) { var responseContent = await response.Content.ReadAsStringAsync(); //change to datetime local Console.WriteLine("Response log added"); } else if (response.StatusCode == HttpStatusCode.InternalServerError) { Console.WriteLine("Response log failed: Internal Service Error."); } else { Console.WriteLine("Response log failed: Bad Request."); } } } } catch { Console.WriteLine("Make sure to start the WebAPI"); } }