![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как запросить страницу с сайта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 |