ВУЗ:
Составители:
Рубрика:
- 58 -
OnPacketRecvd Генерируется каждый раз, когда отдельный пакет принимается от
удаленного сервера в рамках HTTP-сессии (событие удобно при
организации индикатора прогресса приема).
OnPacketsent Возникает каждый раз, когда пакет данных пересылается удален-
ному серверу.
OnStatus Генерируется каждый раз, когда удаленный сервер очередное со-
общение об изменении статуса.
При создании простейшего WEB-броузера обрабатываются (в качестве
примера) только события
OnPacketRecvd и OnStatus, используются методы Get
и
Stop:
procedure TForm1.NMHTTP1PacketRecvd(Sender: TObject);
{ вызывается при наступлении события OnPacketRecvd объекта NMHTTP1 }
begin
StatusBarInfo.SimpleText:=IntToStr(NMHTTP1.BytesRecvd)+
' байт из общего числа ' +IntToStr(NMHTTP1.BytesTotal)+
' получено';
end; { конец NMHTTP1PacketRecvd }
procedure TForm1.NMHTTP1Status(Sender: TComponent; Status: String);
{ вызывается при наступлении события ОnStatus объекта NMHTTP1 }
begin
if NMHTTP1.ReplyNumber = 404 then { совсем плохо... }
StatusBarInfo.SimpleText:='Запрошенный ресурс не найден';
end; { конец NMHTTP1Status }
procedure TForm1.ButtonConnectClick(Sender: TObject);
{ нажатие кнопки Connect }
begin
if EditURL.Text = '' then { если пусто… }
begin
ShowMessage('Поле адреса целевого сервера не может быть пустым...');
exit;
end;
{ настройка броузера }
NMHTTP1.HeaderInfo.UserId:=EditUser.Text; { идентификатор пользователя }
NMHTTP1.HeaderInfo.Password:=EditPassword.Text; { пароль }
NMHTTP1.Proxy:=EditProxy.Text; { адрес прокси-сервера }
NMHTTP1.ProxyPort:=StrToInt(EditProxyPort.Text); { номер порта прокси-сервера }
NMHTTP1.Port:=StrToInt(EditPort.Text); { номер порта сервера }
NMHTTP1.InputFileMode:=False; { работа не с именем, а с содержимым файла }
NMHTTP1.Get(EditURL.Text);{ имя запрашиваемого файла взять из строки ввода }
EditIP.Text:=NMHTTP1.RemoteIP; { показать IP-адрес сервера }
MemoHeader.Text:=NMHTTP1.Header; { показать заголовок ответа от сервера }
{ запрошенный файл получен в NMHTTP1.Body. Именно теперь следует опи-
сать процедуру его анализа, запроса составляющих (изображений etc) и
OnPacketRecvd Генерируется каждый раз, когда отдельный пакет принимается от удаленного сервера в рамках HTTP-сессии (событие удобно при организации индикатора прогресса приема). OnPacketsent Возникает каждый раз, когда пакет данных пересылается удален- ному серверу. OnStatus Генерируется каждый раз, когда удаленный сервер очередное со- общение об изменении статуса. При создании простейшего WEB-броузера обрабатываются (в качестве примера) только события OnPacketRecvd и OnStatus, используются методы Get и Stop: procedure TForm1.NMHTTP1PacketRecvd(Sender: TObject); { вызывается при наступлении события OnPacketRecvd объекта NMHTTP1 } begin StatusBarInfo.SimpleText:=IntToStr(NMHTTP1.BytesRecvd)+ ' байт из общего числа ' +IntToStr(NMHTTP1.BytesTotal)+ ' получено'; end; { конец NMHTTP1PacketRecvd } procedure TForm1.NMHTTP1Status(Sender: TComponent; Status: String); { вызывается при наступлении события ОnStatus объекта NMHTTP1 } begin if NMHTTP1.ReplyNumber = 404 then { совсем плохо... } StatusBarInfo.SimpleText:='Запрошенный ресурс не найден'; end; { конец NMHTTP1Status } procedure TForm1.ButtonConnectClick(Sender: TObject); { нажатие кнопки Connect } begin if EditURL.Text = '' then { если пусто… } begin ShowMessage('Поле адреса целевого сервера не может быть пустым...'); exit; end; { настройка броузера } NMHTTP1.HeaderInfo.UserId:=EditUser.Text; { идентификатор пользователя } NMHTTP1.HeaderInfo.Password:=EditPassword.Text; { пароль } NMHTTP1.Proxy:=EditProxy.Text; { адрес прокси-сервера } NMHTTP1.ProxyPort:=StrToInt(EditProxyPort.Text); { номер порта прокси-сервера } NMHTTP1.Port:=StrToInt(EditPort.Text); { номер порта сервера } NMHTTP1.InputFileMode:=False; { работа не с именем, а с содержимым файла } NMHTTP1.Get(EditURL.Text);{ имя запрашиваемого файла взять из строки ввода } EditIP.Text:=NMHTTP1.RemoteIP; { показать IP-адрес сервера } MemoHeader.Text:=NMHTTP1.Header; { показать заголовок ответа от сервера } { запрошенный файл получен в NMHTTP1.Body. Именно теперь следует опи- сать процедуру его анализа, запроса составляющих (изображений etc) и - 58 -
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »