Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTTP Post mit ResposeStream und AWorkCountMax (https://www.delphipraxis.net/157179-http-post-mit-resposestream-und-aworkcountmax.html)

haentschman 1. Jan 2011 21:13

HTTP Post mit ResposeStream und AWorkCountMax
 
Hallo und guten Abend... :hi:

ich recherchiere schon seit Stunden und finde keine Lösung. Es geht um die Implementierung eines Fortschrittbalkens. Folgende Konstellation.
Quelltext Auszüge:
Delphi-Quellcode:
HTTP.Post(XWebLink,XWebParameter,ResponseStream); // wird einmal aufgerufen
danach kommen folgende Ereignisse in der Reihenfolge.
Delphi-Quellcode:
1. OnWorkBegin    //AWorkCountMax = 73
2. OnWork         //AWorkCount = 73
3. OnWorkBegin    //AWorkCountMax = 0
4. OnWork         //bis zum Ende des Streams AWorkCount = steigende Werte bis über 100000
Da AWorkCount nicht den MaxWert sondern 0 liefert kann ich die Progressbar nicht setzen.

Gibt es eine Lösung dafür ? Oder ist das bei Post mit ResponseStream immer so ? Bei Get über URL geht das ja.

:hi:

Anmerkung: Ich habe zu diesem Thema auch Assertor eine PN geschickt.

WladiD 4. Jan 2011 12:11

AW: HTTP Post mit ResposeStream und AWorkCountMax
 
In OnWorkBegin, OnWork und OnWorkEnd musst du auch stets auf den Parameter WorkMode achten, den gibt es einmal für wmRead und wmWrite.

In deinem Fall kann er zwar die Länge des Posts (AWorkCountMax = 73) indizieren, aber nicht die Antwort, da der Server nicht die Content-Length sendet. Das ist aber vom Server zu Server unterschiedlich.

Jedenfalls kann man in so einer Konstellation keinen Progress-Balken anzeigen, aber sehr wohl einen Indikator, da OnWorkEnd(Sender, wmRead) zuverlässig getriggert wird.

haentschman 4. Jan 2011 13:11

AW: HTTP Post mit ResposeStream und AWorkCountMax
 
Danke für die Antwort...

jetzt wo du es sagst, könnten die 73 Byte der Parameterstream sein der gesendet wird... den Mode hab ich in diesem Zusammenhang nicht kontrolliert. Dann kommt der ResponseStream mit Größe 0. Schade, leider kann ich das Ergebnis vom Server nicht beeinflussen. Die Daten kommen mal als CSV Format, mal als XML oder als HTML.

Sollte noch jemand einen Trick um die Ecke kennen bin ich dankbar. :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz