Как я могу заставить 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");
 Cheeso05 мая 2012 г., 21:18
хорошо спасибо. Это означает, что я не могу указать 302 следующих поведения за вызов, правильно? Это для каждого обработчика, что предполагает, я думаю, для каждого экземпляра HttpClient. Да
 Hans05 мая 2012 г., 22:44
Да, это экземпляр HttpClient. Если вы попытаетесь изменить свойство AllowAutoRedirect между двумя вызовами, вы получите исключение.

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

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