Is there a better method of doing this? If so, a small example would be
GREATLY appreciated.
procedure TForm1.ExecSimultaneous;
begin
for Item := 1 to CheckListBox1.Items.Count do begin
AHttpCli := THttpCli.Create(Self);
with AHttpCli do begin
MultiThreaded := True;
FHttpCliList.Add(AHttpCli);
Tag := Item;
URL := Trim(CheckListBox1.Items[Item-1]);
RcvdStream := TMemoryStream.Create;
AHttpCHeaderData := HttpCli1HeaderData;
AHttpCli.GetAsync
end
end
end;
procedure TForm1.HttpCli1HeaderData(Sender: T);
begin
with THttpCli(Sender) do begin
if StatusCode = 404 then begin
Abort;
URL := ChangeFileExt(URL, '.txt');
GetAsync;
Exit
end;
RequestDone := HttpCliItemRequestDone
end
end;
procedure TForm1.HttpCliItemRequestDone(
Sender : T;
RqType : THttpRequest;
Error : Word);
var
Item : Integer;
AHttpCli : THttpCli;
Count : Integer;
SL: TMemoryStream;
s: String;
begin
AHttpCli := Sender as THttpCli;
{ Remove the item form the list }
Count := FHttpCliList.Count;
for Item := 1 to Count do begin
if AHttpCli = FHttpCliList.Items[Item - 1] then begin
SL := TMemoryStream.Create;
SL.LoadFromStream(AHttpCli.RcvdStream);
SL.SaveToFile('c:\' + Copy(s, LastDelimiter('/', s) + 1, 999));
SL.Free;
AHttpCli.RcvdStream.Free;
FHttpCliList.Delete(Item - 1);
Break
end
end;
{ Free the item }
AHttpCli.Free;
end;
----- Original Message -----
From: "Francois PIETTE"
To: "ICS support mailing"
Subject: Re: [twsocket] THttpCli simultaneous
Date: Mon, 11 Aug 2008 21:09:49 +0200
Using GetAsync and simultaneous download (one download per component
instance) doesn't change anything.
--
[EMAIL PROTECTED]
The author of the freeware multi-tier middleware MidWare
The author of the freeware Internet Component Suite (ICS)
http://www.overbyte.be
----- Original Message -----
From:
To: "ICS support mailing"
Sent: Monday, August 11, 2008 8:49 PM
Subject: Re: [twsocket] THttpCli simultaneous
> So I should issue GetAsync and handle RcvdStream in the OnDocData
event,
> correct?
>
>
> ----- Original Message -----
> From: "Francois Piette"
> To: "ICS support mailing"
> Subject: Re: [twsocket] THttpCli simultaneous
> Date: Mon, 11 Aug 2008 11:56:42 +0200
>
>
> > I'd like to use THttpCli to do multiple simultaneous "GET"
requests
> of
> > different websites. All of the retrieved HTML documents need to
be
> saved
> > to the harddrive.
> > When dynamically creating each of the THttpCli components, should
I
> issue
> > "GetAsync" and write the data to disk in the OnDocData event? Or,
> should
> > I just create a file stream with RcvdStream and issue a normal
> "Get"?
>
> GetAsync is the way to go. You can use RcvdStream with GetAsync. Be
> sure to
> use a different stream for each component !
>
> --
> [EMAIL PROTECTED]
> Author of ICS (Internet Component Suite, freeware)
> Author of MidWare (Multi-tier framework, freeware)
> http://www.overbyte.be
>
> --
> To unsubscribe or change your settings for TWSocket mailing list
> please goto
http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
>
> -- Be Yourself @ mail.com!
> Choose From 200+ Email Addresses
> Get a Free Account at www.mail.com
>
> -- To unsubscribe or change your settings for TWSocket mailing list
> please goto
http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be
--
Be Yourself @ mail.com!
Choose From 200+ Email Addresses
Get a Free Account at www.mail.com
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be