Как запросить страницу с сайта?

Это можно сделать с помощью TClientSocket.

unit Unit1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

 StdCtrls, ScktComp;

const Request: AnsiString = 'GET / HTTP/1.1' + #$D#$A +

 'Accept: application/vnd.ms-excel, application/msword, */*' + #$D#$A +

  'Accept-Language: en-us' + #$D#$A +

  'Accept-Encoding: gzip, deflate' + #$D#$A +

  'User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)' + #$D#$A +

  'Host: vingrad.com' + #$D#$A +

  'Connection: Keep-Alive' + #$D#$A + #$D#$A;

type

 TForm1 = class(TForm)

  Skt: TClientSocket;

  Button1: TButton;

  Memo1: TMemo;

  procedure Button1Click(Sender: TObject);

  procedure SktRead(Sender: TObject; Socket: TCustomWinSocket);

  procedure SktConnect(Sender: TObject; Socket: TCustomWinSocket);

 private

{ Private declarations }

 public

{ Public declarations }

 end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

 Skt.Host := 'vingrad.ru';

 Skt.Port := 80;

 Skt.Open;

end;

procedure TForm1.SktRead(Sender: TObject; Socket: TCustomWinSocket);

begin

 Memo1.Lines.Text := Memo1.Lines.Text + Socket.ReceiveText;

end;

procedure TForm1.SktConnect(Sender: TObject; Socket: TCustomWinSocket);

begin

 Socket.SendText(Request);

end;

end.

Request - это запрос который посылает мой IE5.
В принципе, по протоколу HTTP он может ограничиваться:
'GET / HTTP/1.1'+#13+#13. Если хотите запросить оределенный документ: 'GET /<полный путь> HTTP/1.1'+#13+#13.
Конечно, всегда можно воспользоваться готовыми компонентами.
Автор: Fantasist

{
Присоедините следующий обработчик к Вашему TClientSocket.
Он получает файл с сервера и помещает его в строковую переменную FText string variable. Однако он не убирает заголовок, который так же посылается вебсервером.
Не забудьте задать правильный адрес сервера в объекте Socket. Установите порт 80. А затем откройте его при помощи команды "Socket.Open;".
Автор: E.J.Molendijk
}


Const
 WebPage = '/index.html';
Var
 FText : String;
procedure TForm1.SocketWrite(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 Socket.SendText('GET '+Webpage+' HTTP/1.0'#10#10);
end;
procedure TForm1.SocketRead(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 FText := FText + Socket.ReceiveText
end;
procedure TForm1.SocketConnecting(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 FText := '';
end;
procedure TForm1.SocketDisconnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
{ --- }
{ ЗДЕСЬ ВЫ МОЖЕТЕ ОБРАБАТЫВАТЬ ВАШ FText !!! }
{ --- }
end;
procedure TForm1.SocketError(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
begin
 ErrorCode:=0; { Ошибки игнорируем }
end;

Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...