PDA

Просмотр полной версии : Connection Keep Alive


yfet
04.12.2009, 08:25
вобщем такой вопрос, написал чекер для вк, застопорился на проверке есть ли на на акке приложение "Легенда"
пишу такой код
procedure TMainForm.CheckVKLegendButtonClick(Sender: TObject); var param : TStringList; i : integer; email, pass, s, cookie, post : string; begin param:=TStringList.Create; for i:=0 to AllListBox.Items.Count-1 do begin DivideVK(AllListBox.Items[i], email,pass); param.Add('email='+email); param.Add('pass='+pass); param.Add('expire='); param.Add('vk=1'); s:=IdHTTP2.Post('http://login.vk.com/?act=login',param); param.Clear; Delete(s, 1, Pos('id=''s'' value=''', s) + 13); Delete(s, 57, Pos('''/>', s) + 35); param.Add('op=slogin'); param.Add('redirect=1'); param.Add('expire=0'); param.Add('to='); param.Add('s='+s); s:=IdHTTP2.Post('http://vkontakte.ru/login.php',param); Memo2.Lines.Add(idhttp2.Response.RawHeaders.CommaT ext); cookie:=copy(Memo2.Text,pos('"Set-Cookie: remixsid=',Memo2.Text)+22,56); ShowMessage(cookie); IdHTTP2.Request.CustomHeaders.Add('Cookie: remixsid='+cookie+';'); post:=IdHTTP2.Get('http://vkontakte.ru/apps.php'); if Pos('Легенда - первая настоящая ролевая игра ВКонтакте!',post)>0 then ValibLegendBox.Items.Add(email+':'+pass) else InvalidLegendBox.Items.Add(email+':'+pass); IdCookieManager2.CookieCollection.Clear; end; end;
В Мемо записывается следующее
для первого аккаунта
"Server: nginx/0.7.59","Date: Fri, 04 Dec 2009 04:23:35 GMT","Content-Type: text/html; charset=windows-1251","Connection: keep-alive","X-Powered-By:
для второго и последующих
"Server: nginx/0.7.59","Date: Fri, 04 Dec 2009 04:23:47 GMT","Content-Type: text/html; charset=windows-1251","Connection: close","X-Powered-By:

Почему закрывается соединение?

LStr1ke
04.12.2009, 10:06
Сделай код читабельным.

DeaD_MoroZ
04.12.2009, 14:05
седалй код читабельным-и как я предпологаю закрывается оно потому что ты каждый раз новое содаёшь.

yfet
04.12.2009, 17:55
procedure TMainForm.CheckVKLegendButtonClick(Sender: TObject);
var
param : TStringList;
i : integer;
email, pass, s, cookie, post : string;
begin
param:=TStringList.Create;
for i:=0 to AllListBox.Items.Count-1 do begin
DivideVK(AllListBox.Items[i], email,pass);
param.Add('email='+email);
param.Add('pass='+pass);
param.Add('expire=');
param.Add('vk=1');
s:=IdHTTP2.Post('http://login.vk.com/?act=login',param);
param.Clear;
Delete(s, 1, Pos('id=''s'' value=''', s) + 13);
Delete(s, 57, Pos('''/>', s) + 35);
param.Add('op=slogin');
param.Add('redirect=1');
param.Add('expire=0');
param.Add('to=');
param.Add('s='+s);
s:=IdHTTP2.Post('http://vkontakte.ru/login.php',param);
Memo2.Lines.Add(idhttp2.Response.RawHeaders.CommaT ext);
cookie:=copy(Memo2.Text,pos('"Set-Cookie: remixsid=',Memo2.Text)+22,56);
ShowMessage(cookie);
IdHTTP2.Request.CustomHeaders.Add('Cookie: remixsid='+cookie+';');
post:=IdHTTP2.Get('http://vkontakte.ru/apps.php');
if Pos('Легенда - первая настоящая ролевая игра ВКонтакте!',post)>0 then
ValibLegendBox.Items.Add(email+':'+pass) else
InvalidLegendBox.Items.Add(email+':'+pass);
IdCookieManager2.CookieCollection.Clear;
end;
end;

вот читабельно теперь.
как боротся с закрытием?