2009-08-25 7 views

Antwort

2

Wenn Sie requestTimeout festlegen, löst Ihre Anforderung einen Fehler aus, wenn das Zeitlimit überschritten wird. Sie können also einfach einen Ereignis-Listener zum httpservice faultevent hinzufügen.

+0

request Wert macht nur die Anwendung, die Sie informiert, dass die angegebene Menge an Zeit abgelaufen. Die Anforderung ist jedoch bis zum Ende des Verbindungsabbruch-Timeouts noch gültig. Für meinen Browser sind es 2m 45 Sekunden. – serkan

3

von dieser charmanten Einschränkung bewusst sein HTTPService- ...

Wenn Sie die http.requestTimeout Methode gesetzt ist, wird es still die Tatsache, dass Sie es gefragt ignorieren eine POST-Anforderung an und verwirft alle und alle Header.

Aus irgendeinem Grund, in Flex, GET Dumps alle Header.

var http:HTTPService = new HTTPService() 
http = new HTTPService(); 
http.method = "POST"; 
http.addEventListener(ResultEvent.RESULT, result*emphasized text*Handler); 
http.addEventListener(FaultEvent.FAULT, resultHandler); 
http.url = "http://www.example.com/post; 

//http.requestTimeout = 5; //Watch out for this, there go the headers... 

http.method = "POST"; 
http.send(); 

Oh ja, das Setzen von method = „POST“ zweimal absichtlich war, was noch komischer ist, wenn Sie es im Debugger ausführen, wenn es um die letzte Zeile kommt, http.send(), und Sie schauen im internen Zustand des Objekts ist es immer noch eine POST-Anfrage ...

Muppets.

0

Ab Flex 4.5 (früher möglicherweise) gibt es einen spezifischen Fehlercode auf dem Fehlerereignis für Timeout-Fehler:

In Ihren Fehler-Handler:

if(faultEvent.fault.faultCode == "Client.Error.RequestTimeout"){ 
    trace("TIMEOUT ERROR"); 
} 
Verwandte Themen