Используя HttpClient, как я могу предотвратить автоматическое перенаправление и получить оригинальный код состояния и переадресацию URL в случае 301 [дубликата]

На этот вопрос уже есть ответ здесь:

Как настроить HttpClient так, чтобы он не перенаправлялся автоматически при получении кода состояния 301 HTTP? 1 ответ

У меня есть следующий метод, который возвращаетHttp status code данногоUrl:

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);
}

Это хорошо работает для200/404 и т. д., однако в случае301 коды, я считаю, что возвращаемый результат являетсяуже перенаправлены (200) результат, а не фактический301 это должно быть возвращено и которое будет иметь заголовок, содержащий, куда будет указывать редирект.

Я видел что-то подобное в других классах веб-запросов .Net и технику, чтобы установить какой-тоallowAutoRedirect свойство ложно. Если это правильно, может кто-нибудь сказать мне правильную альтернативу дляHttpClient класс?

Этот пост содержит информацию о вышеупомянутой концепции allowAutoRedirect, я имею в виду

Иначе, как я могу получить этот метод для возврата301s скорее, чем200s для Urls я знаю, чтобы быть подлинным301s?

Ответы на вопрос(1)

Ваш ответ на вопрос