2 Stimmen

Fortschrittsanzeige bei POST mit HTTPService in Flex/AS3

Ich verwende HTTPService mit einer POST-Operation, um eine Base64-kodierte Datei (aus Bitmap-Daten innerhalb der app) zu übermitteln, aber ich könnte wirklich mit immer eine Idee des Fortschritts der POST-Operation (z. B. wie die FileReference.upload()) tun.

Ich glaube nicht, dass dies möglich ist, aber es wäre großartig, wenn es so wäre (mit allen Mitteln, ich bin bereit, mein Setup zu ändern, um dies zu bekommen).

8voto

ForYourOwnGood Punkte 35214

Verwenden Sie nicht HTTPService. Verwenden Sie URLRequest, URLLoader und URLVariables.

Wenn Sie ein HTTPService-Tag verwenden, entfernen Sie es und ersetzen Sie es durch ein Script-Tag, das mit etwas wie ...

private function forYou() : void{
     var req : URLRequest = new URLRequest("PUT YOUR URL HERE")
     var loader : URLLoader = new URLLoader();
     var params : URLVariables = new URLVariables();
     params.WHATEVER = WHATEVER YOU WANT IT TO BE;
     req.data = params;
     req.method = URLRequestMethod.POST;
     loader.addEventListener(ProgressEvent.PROGRESS, YOUR LISTENER FUNCTION NAME);
     loader.load(req);
}

Weisen Sie diesen Funktionsnamen dem Attribut "creationComplete" des Root-Tags zu.

Wenn Sie kein HTTPService-Tag verwenden, holen Sie sich einfach das HTTPService-Objekt in Ihrem Actionscript und verwenden Sie den obigen Code.

0voto

Brandon Punkte 6732

Das hat bei mir gut funktioniert, um einen REST-Webdienst zu nutzen:

http://code.google.com/p/as3httpclient/wiki/Links

Beispiel

0voto

Ross Henderson Punkte 1789

Dies ist mit HTTPService nicht möglich. Seine einzigen Ereignisse sind result , fault y invoke (mit Ausnahme der nicht relevanten vererbten Ereignisse von activate y deactivate ).

Um Fortschrittsinformationen über einen Upload-Vorgang zu erhalten, müsste der Server diese Informationen bereitstellen, was eine Kommunikationsmöglichkeit zwischen dem Server und dem Client während des Vorgangs erfordern würde, die es bei einem normalen HTTP-POST-Vorgang nicht gibt.

Eine Möglichkeit wäre, ein Objekt auf dem Server zu erstellen, das immer dann instanziiert wird, wenn der Server POST-Daten von Ihrem Client erhält. Es würde dann den Fortschritt verfolgen und diese Daten dem Rest Ihrer serverseitigen Anwendung zur Verfügung stellen. Ihr Client könnte dann ein Polling-System initiieren, das den Wert dieser bestimmten Variablen abfragt.

Das scheint aber eine ziemlich weit hergeholte Option zu sein...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X