
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1727 8e941d3f-bd1b-0410-a28a-d453659cc2b4
111 lines
2.3 KiB
ObjectPascal
111 lines
2.3 KiB
ObjectPascal
unit pageloader;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils;
|
|
|
|
type
|
|
|
|
{ TPageLoader }
|
|
|
|
TPageLoader = class
|
|
public
|
|
Contents: string;
|
|
LastPageURL: string;
|
|
ContentsList: TStringList;
|
|
constructor Create;
|
|
procedure LoadFromURL(AURL: string);
|
|
procedure LoadBinaryResource(AURL: string; var ADest: TMemoryStream);
|
|
end;
|
|
|
|
var
|
|
MyPageLoader: TPageLoader;
|
|
|
|
implementation
|
|
|
|
uses httpsend;
|
|
|
|
{ TPageLoader }
|
|
|
|
constructor TPageLoader.Create;
|
|
begin
|
|
ContentsList := TStringList.Create;
|
|
end;
|
|
|
|
procedure TPageLoader.LoadFromURL(AURL: string);
|
|
var
|
|
Client: THttpSend;
|
|
begin
|
|
LastPageURL := AURL;
|
|
|
|
Client := THttpSend.Create;
|
|
try
|
|
// if checkGZip.Checked then
|
|
// begin
|
|
Client.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
|
|
Client.Headers.Add('Accept-Language: en-gb,en;q=0.5');
|
|
// Client.Headers.Add('Accept-Encoding: gzip,deflate');
|
|
Client.Headers.Add('Accept-Charset: utf-8;q=0.7,*;q=0.7'); // ISO-8859-1,
|
|
// end;
|
|
|
|
// Client.UserAgent := AUserAgent;
|
|
Client.HttpMethod('GET', AURL);
|
|
Client.Document.Position := 0;
|
|
|
|
ContentsList.LoadFromStream(Client.Document);
|
|
|
|
Contents := ContentsList.Text;
|
|
finally
|
|
Client.Free;
|
|
end;
|
|
end;
|
|
|
|
{.$define FPB_DEBUG_IMAGE_LOAD}
|
|
procedure TPageLoader.LoadBinaryResource(AURL: string; var ADest: TMemoryStream);
|
|
var
|
|
Client: THttpSend;
|
|
i: Integer;
|
|
begin
|
|
Client := THttpSend.Create;
|
|
try
|
|
Client.Headers.Add('Accept: image/png, image/jpeg, image/gif');
|
|
Client.Headers.Add('Accept-Language: en-gb,en;q=0.5');
|
|
// Client.Headers.Add('Accept-Encoding: gzip,deflate');
|
|
Client.Headers.Add('Accept-Charset: utf-8;q=0.7,*;q=0.7'); // ISO-8859-1,
|
|
|
|
// Client.UserAgent := AUserAgent;
|
|
Client.HttpMethod('GET', AURL);
|
|
|
|
Client.Document.Position := 0;
|
|
ADest := TMemoryStream.Create;
|
|
ADest.CopyFrom(Client.Document, Client.Document.Size);
|
|
// ADest.SaveToFile('/Users/felipe/test.gif');
|
|
|
|
{$IFDEF FPB_DEBUG_IMAGE_LOAD}
|
|
ContentsList.LoadFromStream(Client.Document);
|
|
|
|
WriteLn('Starting to receive image: ' + AURL);
|
|
for i := 0 to ContentsList.Count-1 do
|
|
WriteLn(ContentsList.Strings[i]);
|
|
|
|
Contents := ContentsList.Text;
|
|
{$ENDIF}
|
|
finally
|
|
Client.Free;
|
|
end;
|
|
end;
|
|
|
|
initialization
|
|
|
|
MyPageLoader := TPageLoader.Create;
|
|
|
|
finalization
|
|
|
|
MyPageLoader.Free;
|
|
|
|
end.
|
|
|