![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() есть сайт, очень часто подвисающий, авторизацию на нем я организовал следующим образом:
Код:
repeat status:=http.Get(url_log); if Pos('name="Password"',status)<>0 then begin data.Add('Login='+login); data.Add('Password='+password); auth:=http.Post(url_log,data); data.Clear; end else Sleep(5000); until Pos('logout',auth)<>0; вроде бы все ничего, НО как только сайт "подвисает" и потом "отвисает", далее попыток авторизации не происходит вообще. все делается в потоке. по логу сниффера, программа начинает висеть после ответа сервера об ошибке(502,504,404 и т.п.). пробовал с tidantifreeze та же ерунда, висит и не пытается авторизоваться, вообще нет никаких действий. пробовал организовать условие с responsetext-безрезультатно. подскажите как мне быть в моем случае? как сделает, чтобы после "отвисания" сайта, программа далее успешно продолжала свою работу. примного благодарен! |
#2
|
||||
|
||||
![]() используй таймауты на подключение и чтение. обработку исключений Post().
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Цитата:
спасибо за ответ, у меня стоит обработка исключений post, просто решил сократить приведенный код для удобства. решил свою проблему. почему-то когда ставил responsetext обработчик не реагировал(pos('200',status)...), поставил responsecode в условие, всё заработало. может кому пригодиться: Код:
status:=http.Get(url_log); Sleep(3000); if http.ResponseCode=200 then ... |