public static async Task <LinkCheckResult> CheckLink(string link) { var result = new LinkCheckResult(); result.Link = link; using (var client = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Head, link); try { var response = await client.SendAsync(request); result.Problem = response.IsSuccessStatusCode ? null : response.StatusCode.ToString(); return(result); } catch (HttpRequestException exception) { Logger.LogTrace(0, exception, "Failed to retrieve {link}", link); result.Problem = exception.Message; return(result); } } }
private void PrintOut(LinkCheckResult result) { _testOutput.WriteLine("Result link states:"); _testOutput.WriteLine(string.Join(Environment.NewLine, result.LinkStates.Select((kvp) => $"{kvp.Key}: {kvp.Value}"))); }