HttpClient с прокси дает 403 на второй звонок - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть такой код:

 static private async Task GetContent()
        {
            var proxy = new WebProxy
            {
                Address = new Uri($"http://178.33.236.108:8081"),
                UseDefaultCredentials = false,

                Credentials = new NetworkCredential(
                    userName: "xxx",
                    password: "xxx")
            };

            var httpClientHandler = new HttpClientHandler
            {
                Proxy = proxy,
            };

            var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
            HttpResponseMessage response = await client.GetAsync("https://somesite.com");

            client.DefaultRequestHeaders.Clear();

            HttpResponseMessage response2 = await client.GetAsync("https://somesite.com");
        }

При первом запросе все в порядке, на втором выдает ошибку 403 (та же веб-страница).Если я помещаю Thread.Sleep (10000) между запросами, он по-прежнему выдает ошибку, поэтому его не нужно вызывать.Если я перезагружаю приложение и запускаю его снова, оно ведет себя точно так же.Что более странно, даже если я использую другой объект HttpClient, он все равно выдаст ошибку при втором вызове ... Это своего рода защита Akamai ... но как это работает?Если я использую тот же прокси-сервер в веб-браузере, он отлично работает ... если я удаляю прокси из кода, он тоже отлично работает ...

У кого-нибудь есть идеи, что можно буферизовать в приложении?как его сбросить?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...