Показать сообщение отдельно

  #6  
Старый 16.04.2010, 22:37
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
С нами: 8563393

Репутация: 28
По умолчанию

Код:
function re(wHost, wRequest: string):string;
var
hSocket: TSocket;
hHost: PHostEnt;
hAddr: TSockAddrIn;
hTimeout: TTimeVal;
iRead: integer;
hBuffer: array[0..1024] of char;
hData:string;
begin

 hSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 hHost := gethostbyname(PChar(wHost));
 hAddr.sin_family := AF_INET;
 hAddr.sin_port := htons(80);
 hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
 hTimeout.tv_usec := 0;
 hTimeout.tv_sec := 2000;
 setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));
 connect(hSocket, hAddr, SizeOf(hAddr));

 Send(hSocket, wRequest[1], length(wRequest), 0);
 while (TRUE) do
 begin
  FillChar(hBuffer, SizeOf(hBuffer), 0);
  iRead := Recv(hSocket, hBuffer, length(hBuffer), 0);
  hData := hData + copy(hBuffer, 0, iRead);
  if (iRead <= 0) then break;
 end;
 CloseSocket(hSocket);
result := hData;
end;
Код:
re('login.vk.com','POST /?act=login HTTP/1.1'#13#10+
   'Host: login.vk.com'#13#10+
   'Referer: http://vkontakte.ru/index.php'#13#10+
   'Content-Type: application/x-www-form-urlencoded'#13#10+
   'Content-Length: ' + cl + #13#10#13#10+
   'email=' + e-mail + '&pass=' + password + '&expire=&vk='));
из ответа надо вытащить ключ s и передавать его в следующем запросе:
Код:
re('vkontakte.ru','POST /login.php HTTP/1.1'#13#10+
   'Host: vkontakte.ru'#13#10+
   'Referer: http://login.vk.com/?act=login'#13#10+
   'Content-Type: application/x-www-form-urlencoded'#13#10+
   'Content-Length: ' + cl + #13#10#13#10+
   's=' + s +'&op=slogin&redirect=1&expire=0&to='));
из заголовка надо вытащить remixsid и в дальнейшем использовать его для загрузки нужных станиц
 
Ответить с цитированием