Oleg-vp
28.08.2009, 22:45
Всем привет!
Нуждаюсь в вашем совете.
Задача у меня такая: надо отправлять пост запросы с разных IP для интернет голосования =)
Прогу написал, вот ее кусок:
procedure TForm1.Button1Click(Sender: TObject);
var
server:String;
port:integer;
buf:string;
res:string;
good,i:integer;
begin
Memo2.Lines.Clear;
http.ReadTimeout:=1000;
http.ConnectTimeout:=1000;
good:=0;
if not Check1.Checked then
begin
http.ProxyParams.ProxyServer:='';
http.ProxyParams.Proxyport:=0;
try
Memo2.Lines.Add(UTF8toAnsi(http.Post(LabeledEdit1. Text,Params.Lines)));
except end;
Caption:=SysErrorMessage(GetLastError);
Exit;
end;
for i:=0 to Memo.Lines.Count-1 do
begin
buf:=Memo.Lines.Strings[i];
server:=Copy(Buf,1,Pos(':',Buf)-1);
delete(buf,1,Pos(':',Buf));
port:=StrToInt(Buf);
http.ProxyParams.ProxyServer:=Server;
http.ProxyParams.Proxyport:=port;
try
http.Post(LabeledEdit1.Text,Params.Lines);
except end;
res:=SysErrorMessage(GetLastError);
if res='Операция успешно завершена' then
begin
inc(good);
res:='ok';
end else res:='Error#'+IntToStr(GetLastError);
Caption:=IntToStr(i+1)+' из '+IntToStr(Memo.Lines.Count)+' GOOD='+IntToStr(good);
memo2.Lines.Add(Server+':'+IntToStr(port)+' - '+res);
Application.ProcessMessages;
if Abort then
begin
abort:=false;
Exit;
end;
end;
end;
Код самый обычный, берется из списка проксей адрес и порт, прописывается в TidHTTP и стреляем POST запрос.
ЕСТЬ ЛИ специализированные на этом проги или всё таки придется отлаживать свою прогу? Просто у меня часто возникают ошибки #10054 и #10057 и не очень понятноЦ: или это мертвые прокси или что-то не настроил в комоненте. Примерно на 100 адресов удвчно проходит только 10-20%
Нуждаюсь в вашем совете.
Задача у меня такая: надо отправлять пост запросы с разных IP для интернет голосования =)
Прогу написал, вот ее кусок:
procedure TForm1.Button1Click(Sender: TObject);
var
server:String;
port:integer;
buf:string;
res:string;
good,i:integer;
begin
Memo2.Lines.Clear;
http.ReadTimeout:=1000;
http.ConnectTimeout:=1000;
good:=0;
if not Check1.Checked then
begin
http.ProxyParams.ProxyServer:='';
http.ProxyParams.Proxyport:=0;
try
Memo2.Lines.Add(UTF8toAnsi(http.Post(LabeledEdit1. Text,Params.Lines)));
except end;
Caption:=SysErrorMessage(GetLastError);
Exit;
end;
for i:=0 to Memo.Lines.Count-1 do
begin
buf:=Memo.Lines.Strings[i];
server:=Copy(Buf,1,Pos(':',Buf)-1);
delete(buf,1,Pos(':',Buf));
port:=StrToInt(Buf);
http.ProxyParams.ProxyServer:=Server;
http.ProxyParams.Proxyport:=port;
try
http.Post(LabeledEdit1.Text,Params.Lines);
except end;
res:=SysErrorMessage(GetLastError);
if res='Операция успешно завершена' then
begin
inc(good);
res:='ok';
end else res:='Error#'+IntToStr(GetLastError);
Caption:=IntToStr(i+1)+' из '+IntToStr(Memo.Lines.Count)+' GOOD='+IntToStr(good);
memo2.Lines.Add(Server+':'+IntToStr(port)+' - '+res);
Application.ProcessMessages;
if Abort then
begin
abort:=false;
Exit;
end;
end;
end;
Код самый обычный, берется из списка проксей адрес и порт, прописывается в TidHTTP и стреляем POST запрос.
ЕСТЬ ЛИ специализированные на этом проги или всё таки придется отлаживать свою прогу? Просто у меня часто возникают ошибки #10054 и #10057 и не очень понятноЦ: или это мертвые прокси или что-то не настроил в комоненте. Примерно на 100 адресов удвчно проходит только 10-20%