Как загрузить страничку из интернета

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Climber
постоялец
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Как загрузить страничку из интернета

Сообщение Climber »

Я нашел компонент TIpHtmlPanel (он не умеет обрабатывать css и javascript, но мне это и не нужно), смотрел пример в папке examples, нашел два топика на этом форуме. И, я так понимаю, в Lazarus нет компонента, который может загрузить страничку из интернета?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

synapse - прекрасно выполняет функцию загрузки.
Аватара пользователя
carrots
постоялец
Сообщения: 138
Зарегистрирован: 28.03.2008 01:13:02

Сообщение carrots »

Еще есть родной фрипаскалевський THTTPClient в юните HTTPClient
Аватара пользователя
carrots
постоялец
Сообщения: 138
Зарегистрирован: 28.03.2008 01:13:02

Сообщение carrots »

Вот пример как на основе имеющихся в FPC средств загрузить в стрим страничку с интернета.
(используется библиотека curl)

Код: Выделить всё

{$mode objfpc}
{$H+}
program teststream;

uses classes,libcurl,unixtype;

Function DoWrite(Ptr : Pointer; Size : size_t; nmemb: size_t; Data : Pointer) : size_t;cdecl;

begin
  Result:=TStream(Data).Write(Ptr^,Size*nmemb);
end;

Var
  f : TFileStream;
  URL : Pchar = 'http://www.freepascal.org';
  hCurl : pCurl;

begin
  F:=TFileStream.Create('fpc.html',fmCreate);
  Try
    hCurl:= curl_easy_init;
    if Assigned(hCurl) then
      begin
      curl_easy_setopt(hCurl,CURLOPT_VERBOSE, [True]);
      curl_easy_setopt(hCurl,CURLOPT_URL,[URL]);
      curl_easy_setopt(hCurl,CURLOPT_WRITEFUNCTION,[@DoWrite]);
      curl_easy_setopt(hCurl,CURLOPT_WRITEDATA,[Pointer(F)]);
      curl_easy_perform(hCurl);
      curl_easy_cleanup(hCurl);
      end;
  Finally
    F.Free;
  end;
end.
Ответить