И снова привет. Нужно отправить сообщения на сайт, у которого таймаут на отправку сообщений стоит 5 секунд. Но это слишком долго, поэтому я решил пойти через прокси, но и тут та же фигня - даже с прокси можно отправить всего 1 сообщение в 5 секунд. Как можно решить эту проблему? Вот код потока:
Код | procedure TParseThread.Execute; var post,ast,dest:TStringList; k:Integer; temp,t,f,L:string; begin
IHttp:=TIdHttp.create; Icook:=TIdCookieManager.Create;
ICook.CookieCollection.AddCookies(form1.idhttp1.cookiemanager.CookieCollection); IHttp.CookieManager:=ICook;
IHttp.ProxyParams.ProxyServer:=ProxyAdr; IHttp.ProxyParams.ProxyPort:=StrToInt(ProxyPort);
LoginList:=TStringList.Create; ast:=TStringList.Create; dest:=TStringList.Create; // Получаем код страницы с логинами
while str2<str do begin Try tt:=IHttp.Get(_LINK+inttostr(str2)+'&view=epx&token='+token+'&pid='+pid); Except If str-str2<11 then str2:=str-str-str2 else str2:=str2-11; End;
// Парсим логины
while Pos('"Username":"',tt)>0 do Begin Delete(tt,1,pos('"Username":"',tt)+length('"Username":"')-1); m:=Copy(tt,1,pos('","Points"',tt)-1); LoginList.Add(m); Inc(IntS); End;
// Собственно отправляем сообщения
for k := 0 to LoginList.Count-1 do Begin temp:=CheckTextOfUnicode('"'+Loginlist[k]+'"'); post:=TStringList.Create; Post.Add('messageWrite_Subject=Privet'); Post.Add('guild=0'); Post.Add('apply=0'); Post.Add('messageReceiverRadio=username'); Post.Add('messageInputUsername='+temp); Post.Add('messageWrite_Content=Kak dela'); t:=IHttp.Post(_SMS+token+'&pid='+pid,post); L:=temp+'|'+inttostr(k)+'|'+t; Form1.Memo1.Lines.Add(L); end; End; ... end;
|
|