Добрый вечер. Есть процедура которая парсит сайт. Но гдето через 5-10 минут выходит ошибка в программе Socket Error #10054 Connection reset by peer Так вот я пытаюсь сделать так что бы при выходе такой ошибки происходило автоматическое пере подключение и программа продолжала работать. Но что не получается, по любому выходит ошибка а пере подключение не происходит. Вот код моей функции, подскажите что не так с ней.
Код | Trying:=0; Repeat GoodCon:=False; try Data := TStringList.Create; frmMain.idHttp.Request.Host:='sait.ru'; frmMain.idHttp.Request.UserAgent:='Mozilla/5.0 (Windows NT 5.2; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1'; frmMain.idHttp.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; frmMain.idHttp.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'; frmMain.idHttp.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7'; frmMain.idHttp.Request.Referer:='http://sait.ru/'; frmMain.idHttp.Request.Connection:='keep-alive'; frmMain.idHTTP.Response.KeepAlive:=True; Data.Add('username=' + edt_login.Text); Data.Add('password=' + edt_pwd.Text); StrPage := frmMain.idHttp.Post('http://www.sait.ru/takelogin.php', Data); GoodCon:=True; Except On E:EIdSocketError Do Begin Inc(Trying); if E.LastError = 10054 then Begin StrPage := frmMain.idHttp.Post('http://www.sait.ru/takelogin.php', Data); End; End; End; Until (Trying > 4) Or GoodCon;
|
|