Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить HTML текст странички?  (Прочитано 9339 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Case
Гость
« : 08-08-2004 16:10 » 

Помогите кто может? Очень надо.
Надо получить HTML исходник странички с заданым URL.
Самым простым методом.
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #1 : 09-08-2004 12:44 » 

самй простой способ - компоненты FastNet от NetMasters (для Delphi <= 5.0). там есть некий TNMHTTP, которому прописываются url, при необходимости - прокси и аутентификация на оном, и т.д. далее вызовом одного метода получается страничка.

для знатоков TCP/IP стека более разумно юзать TClientSocket, посылая на сервер с требуемым url команду GET и считывая в буфер результат.
Записан

Case
Гость
« Ответ #2 : 09-08-2004 21:28 » 

Цитата: x77
.... TClientSocket, посылая на сервер с требуемым url команду GET и считывая в буфер результат.

А нельзя ли привести пример GET запроса. А то я HTTP никогда не дружил. А времени искать нету. Может у кого-то знающего есть пару минут написать? Буду очень благодарен!
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #3 : 10-08-2004 12:59 » 

в общем виде http-запрос выглядит так:

GET <URL> HTTP/1.0

вот простенький пример (на форме Memo1, Edit1, Button1, ClientSocket1):
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with ClientSocket1 do begin
    Active := FALSE;
    Host := Edit1.Text;
    Open;
  end;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Text := Memo1.Lines.Text + Socket.ReceiveText;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Socket.SendText ('GET ' + Edit1.Text + ' HTTP/1.0'#10#10);
end;

т.е. в Edit1 вводим адрес, нажимаем Button1, и в Memo1 получаем результат. у ClientSocket должен быть выставлен 80-й порт.

кроме того, следует учитывать, что чрерз прокси сервер такой запрос не пройдёт, он будет работать только при прямом подключении к сети.
« Последнее редактирование: 30-11-2007 21:48 от Алексей1153++ » Записан

Case
Гость
« Ответ #4 : 12-08-2004 14:03 » 

Большое спасибо!!!
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #5 : 12-08-2004 14:18 » 

а не во что Ага
Записан

Судейкина Ирина
Гость
« Ответ #6 : 20-10-2004 02:23 » new

Вам нужно  TMEMO, TBUTTON и NMHTTP

procedure TForm1.Button1Click(Sender: TObject);
begin
  NMHTTP1.Get('www.swissdelphicenter.ch');
  memo1.Text := NMHTTP1.Body
end;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines