
Давайте посмотрим, как это возможно сделать на сокетах?..
Делаем сначало так… На форму саму добавляем компонент ClientSocket, а также 2 Edit и Button
procedure TForm1.Button1Click(Sender: TObject);
begin
if ClientSocket1.Active = true then
ClientSocket1.Active := false;
ClientSocket1.Active := true;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
statusbar1.Panels[0].Text := 'Connect Success';
ClientSocket1.Socket.SendText('POST /login.php HTTP/1.1'#13#10+
'Accept: */*'#13#10+
'Referer: http://vkontakte.ru/login.php?u=1'#13#10+
'Accept-Language: ru'#13#10+
'Content-Type: application/x-www-form-urlencoded'#13#10+
'User-Agent: Mozilla/4.0'#13#10+
'Host: vkontakte.ru'#13#10+
'Content-Length: '+inttostr(length('success_url=&fail_url=&try_to_login=1&email='+edit1.Text+'&pass='+edit2.Text))+#13#10+
'Connection: Keep-Alive'#13#10+
'Cache-Control: no-cache'#13#10#13#10+
'success_url=&fail_url=&try_to_login=1&email='+edit1.text+'&pass='+edit2.Text);
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
statusbar1.Panels[0].Tex t:= 'Disconnected';
end;
procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
statusbar1.Panels[0].Text := 'Error #'+ inttostr(ErrorCode);
end;
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
ans : string;
begin
ans := ClientSocket1.Socket.ReceiveText;
if pos('HTTP/1.1 302 Found', ans) <>0 then
statusbar1.Panels[0].Text := 'Success login';
if pos('<div id="error" />',ans) <> 0 then
statusbar1.Panels[0].Text:= 'Bad login';
end;
Вот и все… Надеюсь всем понятно написано…