![]() |
![]() ![]() ![]() ![]() |
|
Как запросить страницу с сайтаDelphi , Интернет и Сети , Сокеты
Автор: Fantasist
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp;
const
Request: AnsiString = 'GET / HTTP/1.1' + #0$D#0$A+
'Accept: application/vnd.ms-excel, application/msword, */*' + #0$D#0$A+
'Accept-Language: en-us' + #0$D#0$A+
'Accept-Encoding: gzip, deflate' + #0$D#0$A+
'User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)' + #0$D#0$A+
'Host: vingrad.com' + #0$D#0$A+
'Connection: Keep-Alive' + #0$D#0$A+#0$D#0$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. Конечно, всегда можно воспользоваться готовыми компонентами. Программа на Delphi использует компонент TClientSocket для отправки GET-запроса на веб-сайт и получения его содержимого. Программа создает форму с кнопкой и контролем Memo, и при нажатии кнопки открывает соединение с указанным хостом (vingrad.ru) на порту 80, отправляет HTTP-запрос и затем читает ответ от сервера. Константа
Программа использует эти заголовки для отправки GET-запроса на указанный URL. Ответ от сервера затем читается в контроле Memo, где он может быть отображен. Некоторые предложения по улучшению программы:
В отношении вашего вопроса о том, как запросить конкретную страницу на веб-сайте, вы можете просто модифицировать константу Замените Также стоит отметить, что программа использует устаревшую версию Internet Explorer (IE5) в качестве строки пользователя агента, что может привести к тому, что некоторые веб-сайты возвращают другой ответ или блокируют доступ. Вам может быть полезно использовать более современную и нейтральную строку пользователя агента вместо этого. Статья описывает способ запроса страницы с сайта посредством программирования в Delphi, используя протокол HTTP и компонент TClientSocket. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||