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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2014, 22:38   #1
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию Ошибка при отправке запросов

Всем привет.
Я использую IdHTTP для отправки пост запросов на свой сайт. (https)
Запросы отправляются в несколько потоков(на данный момент в 4 потока).
В каждом потоке цикл, который выполняет запрос.(в цикле нету sleep, потому что один запрос выполняется больше 5 секунд, и посчитал это ненужным. Если проблема в этом, то скажите. Просто сейчас нету возможности проверить).
В общем, когда я только начинал делать запросы, появлялась при первом же запросе ошибка HTTP/1.0 302 Found.
Потом я добавил строчку http.HandleRedirects:=True;
Ошибка исчезла. начал тестить.
После выполнения большого количества запросов(в сумме с 4 потоков 132 запроса было выполнено), появилась такая вот ошибка, в каждом из 4 потоков. То есть слетело все одновременно.
Код:
HTTP/1.0 403 Forbidden
Можно ли как-то это исправить?
Может ли быть это связанно с тем, что все 4 запроса с каждого потока выполняются одновременно?
На что еще нужно обратить внимание?
Спасибо всем за ответы)
Изображения
Тип файла: png Снимок.PNG (21.5 Кб, 32 просмотров)
Nugrom вне форума Ответить с цитированием
Старый 12.10.2014, 22:44   #2
Dmitry33RU
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 62
По умолчанию

возможно из-за большого кол-ва запросов, сервер блокирует ваш IP.
Dmitry33RU вне форума Ответить с цитированием
Старый 12.10.2014, 22:45   #3
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

Появилась одна идея. А что есть поместить выполнение запроса в Try?
Если будут выполняться следующие запросы, восстановиться все, или нет? Блин, была бы сейчас возможность проверить..

Или может просто поместить в Try, а если ошибка такая, то почистить компонент, заново залогиниться(да, до отправки пост запросов нужно еще и логиниться), и продолжить отправлять запросы. Такое может помочь?
Nugrom вне форума Ответить с цитированием
Старый 12.10.2014, 22:50   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Неправильно формируете данные и сервер запрещает вам доступ туда.
Человек_Борща вне форума Ответить с цитированием
Старый 12.10.2014, 22:52   #5
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

Dmitry33RU, если я захожу сразу же через браузер, логинюсь, и отправляю выполняю такой же запрос, то все работает. Хотя я даже не знаю. Возможно и блокирует. Получается нужно прокси? Спасибо за ответ. Подумаю над этим

Человек_Борща, но первые 100 с чем-то запросов сервер пропустил. Даже если вы правы, вы знаете как это "обойти" или исправить?

Dmitry33RU, скорее всего вы правы. я сейчас попробовал. при выполнении такого запроса сразу же вылетает эта ошибка. даже одного запроса не выполняется. Хотя авторизация происходит. Не происходит именно пост запрос. Значит нужно юзать прокси? Занести выполнение запроса в TRY, и если ошибка такая, то менять прокси, и продолжать? Такое поможет?

Да, я сменил ИП, заново запустил программу и теперь все работает. Значит все дело в ип. Думаю что если прикрутить прокси, то должно работать. Всем огромное спасибо за ответы)

Дабы не создавать новую тему. Спрошу тут. Дело в том, что я не могу прикрутить прокси к IdHTTP.
пишу так:

Код:
http.ProxyParams.ProxyUsername := host;
http.ProxyParams.ProxyPort := strtoint(port);
Думал сразу что все работает. Но потом попробовал вместо нормального хоста и порта написать просто набор цифр. И оно все равно работает без ошибок. Тогда попробовал спарсить через прокси сайт 2ip.ru, но там написан мой ип адрес. В строчке прокси написано "не используется".
Может я как-то неправильно прокси подключаю?
Вот весь код с созданием компонента:
Код:
http := TIdHTTP.Create(nil);
handler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
http.IOHandler := handler;
http.Request.UserAgent := 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1';
http.Request.ContentType := 'application/x-www-form-urlencoded';
http.HandleRedirects:=True;
http.ProxyParams.ProxyUsername := host;
http.ProxyParams.ProxyPort := strtoint(port);

Последний раз редактировалось Stilet; 13.10.2014 в 20:23.
Nugrom вне форума Ответить с цитированием
Старый 13.10.2014, 20:59   #6
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

UP! Кстати, прокси беру с сайта hideme, там написан уровень анонимности, брал и с сильным и со средним. Результат один и тот же.
Хотя если я вообще вместо прокси пишу цифры любые, то все рано все работает. так что я думаю что анонимность прокси тут роли не играет..

вообще не знаю что делать( Может инди переустановить? Как думаете, поможет? Или может лучше будет перейти на Синапс?

Последний раз редактировалось Stilet; 13.10.2014 в 21:38.
Nugrom вне форума Ответить с цитированием
Старый 13.10.2014, 21:34   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Так, стопэ! А собсно инет твой идет через прокси? Или как?
Цитата:
Или может лучше будет перейти на Синапс?
У мну индейка прекрасно через проксятину качает кой-че на работе, не в ней дело.

Кстати ты не забыл .ProxyParams.ProxyServer выставить?
I'm learning to live...

Последний раз редактировалось Stilet; 13.10.2014 в 21:36.
Stilet вне форума Ответить с цитированием
Старый 13.10.2014, 22:09   #8
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

Цитата:
А собсно инет твой идет через прокси?
Не особо понял вопроса. Просто инет идет напрямую с модема.
При перезагрузке модема ип меняется(динамичский ип, или ка-то так называется).

Цитата:
ProxyParams.ProxyServer
Как его выставлять? я скинул абсолютно весь код с компонентом. с его созданием
Nugrom вне форума Ответить с цитированием
Старый 13.10.2014, 22:20   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Просто инет идет напрямую с модема.
Пф... Тогда как ты собрался прокси проверять? У тебя прямой выход.
Цитата:
Как его выставлять?
А там выставляется адрес компа (ну или точнее узла), на котором стоит прокси сервер.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2014, 22:26   #10
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

Цитата:
А там выставляется адрес компа (ну или точнее узла), на котором стоит прокси сервер.
где взять этот адрес узла?
вот к примеру прокси(на скрине).

Цитата:
Пф... Тогда как ты собрался прокси проверять? У тебя прямой выход.
Я помню, когда я месяц назад примерно, или чуть больше.. На синапсе парсил сайт 2ip.ru с прокси, то все работало. и если анонимность высокая, то вместо моего ип показывал адрес прокси, если не высокая, то показывал мой ип, а в строке "прокси" показывал правильно прокси.
Изображения
Тип файла: jpg Снимок.jpg (3.4 Кб, 122 просмотров)

Последний раз редактировалось Nugrom; 13.10.2014 в 22:37.
Nugrom вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при отправке ip пакета CraZZZy-GameRRR C/C++ Сетевое программирование 2 03.05.2013 21:16
Ошибка при отправке E-Mail POPOV Работа с сетью в Delphi 4 10.04.2012 23:47
Ошибка 200 при отправке данных )Игнат( Работа с сетью в Delphi 2 15.06.2011 19:43
Ошибка при отправке сообщений через SMTPClient BoT_T Работа с сетью в Delphi 6 26.09.2010 17:16
ошибка при отправке D_E_N Работа с сетью в Delphi 11 01.11.2009 00:41