Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2019, 15:50   #1
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию Ошибка 429 при получении страницы. Через браузер на страницу пускает.

Не поставил задержки в цикле и теперь при запуске метода
Код:
public static async Task<string> GetRequest( string url)
        {
            string data;
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
                data = await client.GetStringAsync(url);
            }
            return data;
        }
получаю ошибку
Цитата:
System.Net.Http.HttpRequestExceptio n: 'Код состояния ответа не указывает на успешное выполнение: 429 (Too Many Requests).'


В Postman
в разделе body
Код:
<h1>Защита от роботов</h1>
        <p>
        Вы попали сюда, вероятно, потому что с вашего ip адреса было сделано слишком много запросов к сайту за единицу времени.
            <br/>
        Введите текст, который вы видите на картинке, для того, чтобы вернуться к работе с сайтом.
        </p>

в разделе Headers
Цитата:
Server →nginx
Date →Tue, 23 Apr 2019 12:42:42 GMT
Content-Type →text/html; charset=utf-8
Connection →keep-alive
X-Ips-Suspection →Blacklisted
Cache-Control →no-store, no-cache, max-age=0
Pragma →no-cache
Set-Cookie →ccc=; Max-Age=0
Content-Length →1467
Как я понял, брошен в блеклист.

Если ввести в браузере вручную путь, то сайт открывается нормально.

Как же по ІР блокируется?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.04.2019, 15:53   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А откуда вы взяли про блокировку по айпи?
p51x на форуме Ответить с цитированием
Старый 23.04.2019, 15:59   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А откуда вы взяли про блокировку по айпи?
увидел фразу
Цитата:
с вашего ip адреса было сделано слишком много запросов
и сам для себя так решил.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.04.2019, 08:23   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А откуда вы взяли про блокировку по айпи?
Ето был вопрос или вы таким способом намекали на какое-то решение? Если другое, то я намека не понял.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.04.2019, 09:17   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Естественно, вопрос, т.к. блокировки по IP нет в вашем случае. Решение простое - смотреть, что не нравится сайту. Например, вам явно сообщили, что вы слишком мноо запросов делаете в единицу времени. Добавьте задержки, продумайте логику.
p51x на форуме Ответить с цитированием
Старый 25.04.2019, 12:05   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Добавьте задержки
Не запускал код со вчерашнего дня.

Запускаю 1 запрос на получение 1 страницы
Код:
var result = await GetRequestAsync(StartUrl);

.....

public static async Task<string> GetRequestAsync(string url, bool AddDefaultRequestHeaders = false)
        {
            string data;

//            HttpClientHandler handler = new HttpClientHandler()
//           {
//                Proxy = new WebProxy("http://109.123.4.12:3128"),
//                UseProxy = true,
//           };
//            using (var client = new HttpClient(handler))


            using (var client = new HttpClient())
            {
                if (AddDefaultRequestHeaders)
                {
                    client.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
                    //client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36");
                }
                try
                {
                    data = await client.GetStringAsync(url);
                }
                catch (Exception ex)
                {
                    Debug.Indent();
                    Debug.WriteLine(ex.Message);
                    Debug.Unindent();
                    data = "";
                }
            }
            return data;
        }
Цитата:
Код состояния ответа не указывает на успешное выполнение: 429 (Too Many Requests).
Может сам метод GetStringAsync делает много запросов?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.04.2019, 12:15   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Для начала сравните, что посылает браузер и вы. Возможно ему нужен рефер или токен. Не советую слать X-Requested-With:XMLHttpRequest, так вполне ботов могут отсекать.
p51x на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при получении даных из SQL Челик Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 20.04.2019 12:32
Браузер неправильно отображает страницу HTML Nadia- Общие вопросы Web 3 25.11.2017 07:26
ошибка при получении и обработки данных с Интернет страницы Arsenx777 Общие вопросы Delphi 8 15.04.2012 09:16
ошибка при получении данных Lkon Microsoft Office Excel 4 22.02.2012 00:02
Неудача при получении исходного кода страницы Alex Cones Работа с сетью в Delphi 8 18.05.2010 16:38