Подтвердить что ты не робот

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

Использование HttpClient из NuGet.

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

как?

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

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

4b9b3361

Ответ 1

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

Класс WebRequestHandler предоставляет свойство, называемое 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");