2011-06-24 08:34:19 +00:00
|
|
|
unit pageloader;
|
|
|
|
|
|
|
|
{$mode delphi}
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
Classes, SysUtils;
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
{ TPageLoader }
|
|
|
|
|
|
|
|
TPageLoader = class
|
|
|
|
public
|
|
|
|
Contents: string;
|
2011-07-01 07:04:46 +00:00
|
|
|
LastPageURL: string;
|
2011-06-24 08:34:19 +00:00
|
|
|
ContentsList: TStringList;
|
|
|
|
constructor Create;
|
|
|
|
procedure LoadFromURL(AURL: string);
|
2011-07-01 07:35:11 +00:00
|
|
|
procedure LoadBinaryResource(AURL: string; var ADest: TMemoryStream);
|
2011-06-24 08:34:19 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
MyPageLoader: TPageLoader;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
uses httpsend;
|
|
|
|
|
|
|
|
{ TPageLoader }
|
|
|
|
|
|
|
|
constructor TPageLoader.Create;
|
|
|
|
begin
|
|
|
|
ContentsList := TStringList.Create;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TPageLoader.LoadFromURL(AURL: string);
|
|
|
|
var
|
|
|
|
Client: THttpSend;
|
2011-07-04 12:14:10 +00:00
|
|
|
J: Integer;
|
2011-06-24 08:34:19 +00:00
|
|
|
begin
|
2011-07-04 12:14:10 +00:00
|
|
|
// If there is no protocol, add http
|
|
|
|
J := Pos(':', AURL);
|
|
|
|
if (J = 0) then LastPageURL := 'http://' + AURL
|
|
|
|
else LastPageURL := AURL;
|
2011-06-24 08:34:19 +00:00
|
|
|
|
2011-07-01 07:04:46 +00:00
|
|
|
Client := THttpSend.Create;
|
|
|
|
try
|
2011-06-24 08:34:19 +00:00
|
|
|
// if checkGZip.Checked then
|
2011-07-01 07:04:46 +00:00
|
|
|
// begin
|
2011-06-24 08:34:19 +00:00
|
|
|
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,
|
2011-07-01 07:04:46 +00:00
|
|
|
// end;
|
|
|
|
|
|
|
|
// Client.UserAgent := AUserAgent;
|
2011-07-04 12:14:10 +00:00
|
|
|
Client.HttpMethod('GET', LastPageURL);
|
2011-07-01 07:04:46 +00:00
|
|
|
Client.Document.Position := 0;
|
|
|
|
|
|
|
|
ContentsList.LoadFromStream(Client.Document);
|
|
|
|
|
|
|
|
Contents := ContentsList.Text;
|
|
|
|
finally
|
|
|
|
Client.Free;
|
2011-06-24 08:34:19 +00:00
|
|
|
end;
|
2011-07-01 07:04:46 +00:00
|
|
|
end;
|
|
|
|
|
2011-07-01 07:35:11 +00:00
|
|
|
procedure TPageLoader.LoadBinaryResource(AURL: string; var ADest: TMemoryStream);
|
2011-07-01 07:04:46 +00:00
|
|
|
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,
|
2011-06-24 08:34:19 +00:00
|
|
|
|
|
|
|
// Client.UserAgent := AUserAgent;
|
2011-07-01 07:04:46 +00:00
|
|
|
Client.HttpMethod('GET', AURL);
|
2011-06-24 08:34:19 +00:00
|
|
|
|
2011-07-01 07:04:46 +00:00
|
|
|
Client.Document.Position := 0;
|
2011-07-01 07:35:11 +00:00
|
|
|
ADest := TMemoryStream.Create;
|
|
|
|
ADest.CopyFrom(Client.Document, Client.Document.Size);
|
2011-07-04 12:14:10 +00:00
|
|
|
// WriteLn(AURL, ' Size: ', ADest.Size);
|
2011-07-01 07:04:46 +00:00
|
|
|
finally
|
|
|
|
Client.Free;
|
|
|
|
end;
|
2011-06-24 08:34:19 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
initialization
|
|
|
|
|
|
|
|
MyPageLoader := TPageLoader.Create;
|
|
|
|
|
|
|
|
finalization
|
|
|
|
|
|
|
|
MyPageLoader.Free;
|
|
|
|
|
|
|
|
end.
|
|
|
|
|