Как я могу заставить System.Net.Http.HttpClient не выполнять перенаправления 302?

С помощьюHttpClient от NuGet.

Приложение отправляет сообщение с client.PostAsync (). Я хочу, чтобы он НЕ следовал 302 редиректам.

как?

Я полагаю, я могу просто установитьAllowAutoRedirect как описано вэтот ответ.

Но как мне получитьHttpWebRequest используется в вызове PostAsync ()?

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

HttpClient конструктор принимаетWebRequestHandler аргумент.HttpClient класс использует этоWebRequestHandler для отправки запросов.

TheWebRequestHandler class предоставляет свойство с именемAllowAutoRedirect для настройки поведения перенаправления. Установка этого свойства в false указывает наHttpClient не следить за перенаправлением ответов.

Вот небольшой пример кода:

WebRequestHandler webRequestHandler = new WebRequestHandler();

webRequestHandler.AllowAutoRedirect = false;

HttpClient httpClient = new HttpClient(webRequestHandler);

// Send a request using GetAsync or PostAsync

Task<HttpResponseMessage> response = httpClient.GetAsync("http://www.google.com");

WebRequestHandler является производным от HttpClientHandler, но добавляет свойства, которые обычно доступны только в полной версии .NET. WebRequestHandler не включен в DLL-файл System.Net.Http, а скорее в DLL-файл System.Net.Http.WebRequest, поэтому вы должны явно включить его в качестве ссылки, чтобы увидеть его. В противном случае он не появится.

Вы можете просто перейти на HttpClientHandler, если не хотите добавлять новые библиотеки DLL:

    HttpClientHandler clientHandler = new HttpClientHandler();
    clientHandler.AllowAutoRedirect = false;

Ссылка:https: //blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-and-webrequesthandler-explained

ВАШ ОТВЕТ НА ВОПРОС