написал программу.
при вводе в нее прокси она их чекает на валидные\невалидные.
мне нужно чтобы при попадании невалидных прокси в memo выводилась ошибка (например проблема сети, 400 Request и т.д.)
не знаю как это реализовать. помогите.
делаю так:
Код:
resp1:=http.Get('http://ya.ru');
RegExpr.Expression := '<title>(.*?)</title>';
if RegExpr.Exec(resp1) then
form1.Memo1.Lines.Add(Utf8ToAnsi(RegExpr.Match[1]+'--'+ip));
но здесь программа парстить title ТОЛЬКО валидные прокси (не знаю почему).
написал программу.
при вводе в нее прокси она их чекает на валидные\невалидные.
мне нужно чтобы при попадании невалидных прокси в memo выводилась ошибка (например проблема сети, 400 Request и т.д.)
не знаю как это реализовать. помогите.
делаю так:
Код:
resp1:=http.Get('http://ya.ru');
RegExpr.Expression := '<title>(.*?)</title>';
if RegExpr.Exec(resp1) then
form1.Memo1.Lines.Add(Utf8ToAnsi(RegExpr.Match[1]+'--'+ip));
но здесь программа парстить title ТОЛЬКО валидные прокси (не знаю почему).
юзай синапс имхо, а вообще раз уже две темы где был бы полезен мой сорц ща заползу на свой домашний резервник и попробую вам найти сорц моего прокси чекера на инди+многопоточность
upd:
[Ссылки могут видеть только зарегистрированные пользователи. ] исходник моего прокси чекера с менеджером потоков
мне надо чтобы при попадании невалидного прокси программа записывала номер ошибки.
для этого как я полагаю нужно парсить страницу.
я делаю это но ничего не получается.((
Код:
procedure TMyTr.Execute;
var
s,resp,resp1,resp2, ip, port:string;
cw,i:integer;
regexpr:TRegExpr;
begin
regexpr:=TRegExpr.Create;
http:=TIdHTTP.Create(nil);
cw:=getnumberproxy;
while cw<form1.ListBox1.Items.Count do
begin
s:=form1.ListBox1.Items[cw];
i := Pos(':',s);
IP := Copy(s,1,i-1);
PORT := Copy(s,i+1,Length(s));
http.ProxyParams.ProxyServer:=ip;
http.ProxyParams.ProxyPort:=StrToInt(port);
// http.ReadTimeout:=Form1.SpinEdit2.Value*1000;
resp1:=http.Get('http://ya.ru');
RegExpr.Expression := '<title>(.*?)</title>';
if RegExpr.Exec(resp1) then
form1.Memo1.Lines.Add(Utf8ToAnsi(RegExpr.Match[1]+'--'+ip))
else
Form1.ListBox3.Items.Add(Utf8ToAnsi(RegExpr.Match[1]+'--'+ip));
cw:=getnumberproxy;
checked:=checked+1;
http.Free;
RegExpr.Free;
end;
end;
вот собственно код чекера прокси и парса странички.
Добавлено через 1 час 15 минут
проблема решена.
кому интересно вот:
Код:
try
resp1:=http.Get('http://ya.ru');
RegExpr.Expression := '<title>(.*?)</title>';
if RegExpr.Exec(resp1) then
form1.Memo1.Lines.Add(Utf8ToAnsi(RegExpr.Match[1]+'--'+ip+':'+port));
except
on E : Exception do
form1.ListBox3.Items.Add(E.ClassName+'-|- Поднята ошибка, с сообщением : '+E.Message+'--'+ip+':'+port);
end;
Последний раз редактировалось *Хalyava*; 27.12.2011 в 19:49.
Причина: Добавлено сообщение