I experienced the same RequestDone error and asked about it previously. I
handled it by checking de StatusCode. On a RequestDone with StatusCode = 0,
it's not the final one and more will follow. However, I seem to end up with
clients that never generate a RequestDone anymore... That means clients that
never finish, which stalls the complete download process.

I hope we can start the discussion again. Thanks.

--Merijn

Btw, I use C++ builder 6 too... Is this a builder-specific bug?

On 9/28/05, Bjørnar Nielsen <[EMAIL PROTECTED]> wrote:
>
> First, i have not read the messages you write this follow up to.
>
> > This is a follow up. I wanted to report what appears to be a
> > related issue to the bug in THttpCli when a link is
> > redirected. It seems that the RequestDone is called twice.
> > This has already been reported and I've implemented a work
> > around in my program.
>
> If you get data together with the redirection, mabe it is not a bug that
> you
> get requestdone twice?
>
> > I've discovered another issue in that it doesn't seem that
> > the RcvdStream is being cleared. For example, when a link is
> > requested using THttpCli and it is redirected, there can be
> > garbage at the beginning of RcvdStream.
> > RcvdStream should only contain the document obtained from the
> > redirected link and nothing from the original link that
> > caused the redirection.
> >
> > I am using the latest release version and C++Builder 6.
> >
> > I have reproduced this problem in my application using this
> > link provided by a user:
> > http://net1test.rhmware.com/marketingprimer
> >
> > I have worked around this issue by clearing RcvdStream when
> > the LocationChange event is called using:
> > if (HttpCli->RcvdStream) {
> > HttpCli->RcvdStream->Seek(0,soFromBeginning);
> > }
>
> If LocationChange is triggered before you have received all the data from
> first request,
> maybe you should clear the stream in requestdone instead,?
>
> >
> > By the way, I hope the above is sufficient to clear the
> > stream but I'm not sure that it is. If it isn't can anyone
> > state the correct way to clear/reset a steam? I can't find it
> > in the documentation.
>
> This only sets the position in the stream, in this case to the start of
> the
> stream. Then when you receive data, the data is written from the start of
> the stream, overwriting previous data if there are any. If you use a
> TMemoryStream, you can use Clear or SetSize, this will also delete old
> data.
> You can also delete the stream and make a new stream.
>
> Regards Bjørnar
>
>
> --
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
>
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to