don't treat a redirect the same as being broken

This commit is contained in:
Collin M. Barrett 2019-07-02 21:57:33 -05:00
parent fd4a037f94
commit 29a2cc79f0

View file

@ -73,16 +73,22 @@ private TransformBlock<Uri, UrlValidationResult> BuildValidator(CancellationToke
try
{
var response = await _httpClient.GetAsync(u, cancellationToken);
if (response.StatusCode == HttpStatusCode.PermanentRedirect ||
response.StatusCode == HttpStatusCode.TemporaryRedirect)
result.SetRedirectsTo(response.Headers.Location);
if (u.Scheme == Uri.UriSchemeHttp && await IsHttpsSupported(u, cancellationToken))
result.SetSupportsHttps();
if (response.IsSuccessStatusCode)
return result;
result.SetBroken();
_logger.LogError(
$"Url validation for ({u.AbsoluteUri}) failed with status code: {response.StatusCode}.");
if (response.StatusCode == HttpStatusCode.PermanentRedirect ||
response.StatusCode == HttpStatusCode.TemporaryRedirect)
{
result.SetRedirectsTo(response.Headers.Location);
}
else
{
result.SetBroken();
_logger.LogError(
$"Url validation for ({u.AbsoluteUri}) failed with status code: {response.StatusCode}.");
}
return result;
}
catch (HttpRequestException ex)