Wie kann ich mit HttpClient automatische Weiterleitungen verhindern und den ursprünglichen Statuscode und die Weiterleitungs-URL im Fall von 301 [duplizieren] abrufen?

Diese Frage hat hier bereits eine Antwort:

Wie konfiguriert man HttpClient so, dass es nicht automatisch umleitet, wenn es einen 301 HTTP Status Code empfängt? 1 Antwort

Ich habe die folgende Methode, die das zurückgibtHttp status code von einem gegebenenUrl:

public static async void makeRequest(int row, string url)
{
    string result;
    Stopwatch sw = new Stopwatch(); sw.Start();

    try
    {
        using (HttpClient client = new HttpClient())
        {
            HttpResponseMessage response = new HttpResponseMessage();
            response = await client.GetAsync(url);

            // dump contents of header
            Console.WriteLine(response.Headers.ToString());

            if (response.IsSuccessStatusCode)
            {
                result = ((int)response.StatusCode).ToString();
            }
            else
            {
                result = ((int)response.StatusCode).ToString();
            }
        }
    }
    catch (HttpRequestException hre)
    {
        result = "Server unreachable";
    }

    sw.Stop();
    long time = sw.ElapsedTicks / (Stopwatch.Frequency / (1000L * 1000L));

    requestComplete(row, url, result, time);
}

Es funktioniert gut für200/404 etc, jedoch im Fall von301 Ich glaube, das zurückgegebene Ergebnis ist derbereits umgeleitet (200) Ergebnis, anstatt der tatsächlichen301 das sollte zurückgegeben werden und einen Header enthalten, auf den die Umleitung verweisen würde.

Ich habe so etwas in anderen .Net Web Requests-Klassen gesehen und die Technik, mit der man so etwas einstellen konnteallowAutoRedirect Eigenschaft auf falsch. Wenn dies in die richtige Richtung geht, kann mir jemand die richtige Alternative für das sagenHttpClient Klasse?

Dieser Beitrag enthält Informationen zum obigen allowAutoRedirect-Konzept, das ich meine

Ansonsten, wie könnte ich diese Methode zurückbringen301s eher, als200s für urls weiß ich echt zu sein301s?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage