HttpClient.SendAsync перенаправление в Net.Core

Использовал HttpClient.SendAsync в Net.Framework и не получал исключений при встрече с перенаправлением StatusCode 302

А попробовал перейти на Net.Core и HttpClient.SendAsync стал выдавать исключение

Как сделать так, чтобы перенаправление проходило и на Net.Core ?

  • Хочу ещё отметить что перенаправление там идёт с https на http

Попробовал, но не помогло:

    static readonly HttpClientHandler httpClientHandler = new HttpClientHandler() { AllowAutoRedirect = true };
    static readonly HttpClient client = new HttpClient(httpClientHandler);

Правильно ли я понимаю, что на Net.Core мне придётся самому отлавливать StatusCode-ы и в случае перенаправления, ловить Location и самому перенаправляться ?

Или всё таки можно установить какое то свойство и чтобы это не являлось исключением.

UPD 1:

В Net.Framework перенаправление проходит само по себе, т.е. получаю html тело страницы на которую произошло перенаправление.

А Net.Core выдаёт исключение.

        HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();

UPD 2 - Исключение:

System.Net.Http.HttpRequestException: "Response status code does not indicate success: 302 (Found)."

UPD 3 - Использование целиком

    static readonly HttpClientHandler httpClientHandler = new HttpClientHandler() { AllowAutoRedirect = true };
    static readonly HttpClient client = new HttpClient(httpClientHandler);

    private async Task<string[]> GetHtmlPageAsync(string param1, string url)
    {

        string[] otvet = new string[2];

        using HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url);
        request.Headers.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36");

        request.Content = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("param1", param1),
            // и другие
        });

        using HttpResponseMessage response = await client.SendAsync(request);
        response.EnsureSuccessStatusCode();
        int responseHttpStatusCode = (int)response.StatusCode;

        otvet[0] = responseHttpStatusCode.ToString();
        otvet[1] = await response.Content.ReadAsStringAsync();

        return otvet;

    }

Ответы (0 шт):