Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   [GELÖST] IdHTTP POST WorkCount Problem (https://www.delphipraxis.net/169900-%5Bgeloest%5D-idhttp-post-workcount-problem.html)

BlackRaven 20. Aug 2012 15:55


[GELÖST] IdHTTP POST WorkCount Problem
 
Hallo,

ich Sende mit einem TIdHTTP ein Post Befehl an einen Server, der eine Datei beinhaltet, was auch alles wunderschön klappt.
Wenn von meiner Seite alles geklappt hat, schickt der Server eine Antwort zurück, das alles gut lief.

Wenn ich jetzt aber mit AWorkCount bei OnWork anzeigen will, wieviel schon hochgeladen wurde, klappt das auch, aber sobald der ursprüngliche Upload fertig ist, steht in AWorkCount was an Daten übertragen wurde von der Antwort des Server.

Jetzt suche ich einen Lösungsansatz, wie ich verhindern kann, das ich nur die AWorkCount daten des Uploades hab.

Über Hilfen würde ich mich sehr freuen

Edit
hier noch der Source dazu:

Das steht im Button OnClick:
Delphi-Quellcode:
upload := TIdMultiPartFormDataStream.Create;
upload.AddFile('file', Edit1.Text, 'multipart/form-data');
 
fileserver := 'http://beispielurl.com/upload.php';

upload_result:= IdHTTP1.Post(fileserver, upload);

geskill 21. Aug 2012 00:21

AW: IdHTTP POST WorkCount Problem
 
Hey,
wird denn bei dir kein WorkBegin() Event ausgelöst. Darüber wird man doch benachrichtigt ob gerade gelesen/geschrieben wird und wieviel erwartet wird (AWorkCountMax).

Ansonsten weißt du über die Größe des Upload-DataStreams + feste Headergröße doch wieviel gesendet wird. Der Rest müsste also die Antwort sein.

Vielleicht wird auch ein Redirect() Event ausgelöst, also nachdem der Server die Daten empfangen hat. Alles was nachdem an Daten anfällt könntest du doch verwerfen.

Mag sein, dass ich jetzt was übersehen habe, aber ist schon spät und musste deine Frage erst paar mal lesen :duck:

BlackRaven 21. Aug 2012 02:55

AW: IdHTTP POST WorkCount Problem
 
Danke für deine Antwort.

Ja die sache ist etwas schwammig Formuliert, gebe ich zu, allerdings weiß ich nicht, wie ich es anders erklären soll.

Aber ich glaube ich habe das ganze gelöst.
Da ich mehrere Idhttp Posts sende, musste ich nur den richtigen markieren, indem ich vorher ein uploaded := TRUE und direkt danach ein uploaded := FALSE setze, also
Delphi-Quellcode:
uploaded := TRUE;
upload_result:= IdHTTP1.Post(fileserver, upload);
uploaded := FALSE;
Hier hat mir dann dein Tip mit geholfen, mir mal die Ereignisse anzuschauen, und dabei ist mir aufgefallen das ich die AWorkMode (TWorkMode) komplett übergangen habe und ich damit herausfinden konnte, wann OnWork Uploaded bzw das Ergebnis empfängt (Downloaded)

Delphi-Quellcode:
  if (AWorkMode = wmWrite) AND (uploaded = TRUE) then
  begin
     {SOURCE DER BEIM UPLOADEN AUSGEFÜHRT WIRD}
  end;
Das ganze hab ich machen können nachdem ich die Hitze hab vorbeiziehen lassen und wieder einen klaren kühlen Kopf hatte. Eventuell lag es ja wirklich an der Hitze, das ich das alles nicht mehr Richtig bedenken konnte.
Aber auch die Danke geskill, weil du mir wahrscheinlich den richtigen Denkanstoss verpasst hast :)

Den ersten Tests zufolge ist das Problem damit gelöst.

DeddyH 21. Aug 2012 08:22

AW: [GELÖST] IdHTTP POST WorkCount Problem
 
Bitte niemals mit TRUE vergleichen, das kann ins Auge gehen.
Delphi-Quellcode:
if (AWorkMode = wmWrite) AND (uploaded{ = TRUE}) then

BlackRaven 21. Aug 2012 15:39

AW: [GELÖST] IdHTTP POST WorkCount Problem
 
Zitat:

Zitat von DeddyH (Beitrag 1178975)
Bitte niemals mit TRUE vergleichen, das kann ins Auge gehen.
Delphi-Quellcode:
if (AWorkMode = wmWrite) AND (uploaded{ = TRUE}) then

wieso sollte das schief gehen? :? Ich deklarier uploaded ja am start direkt auf FALSE und uploaded ist eine globale variable

DeddyH 21. Aug 2012 15:43

AW: [GELÖST] IdHTTP POST WorkCount Problem
 
http://www.delphipraxis.net/57121-ue...t-boolean.html

BlackRaven 21. Aug 2012 15:47

AW: [GELÖST] IdHTTP POST WorkCount Problem
 
ok, gebe ich dir recht. Danke für den Hinweis :)

DeddyH 21. Aug 2012 15:49

AW: [GELÖST] IdHTTP POST WorkCount Problem
 
No problema ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.

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