HttpService requestTimeout

时间:2009-08-25 17:52:43

标签: flex actionscript-3

如何确定HttpService实例是否超时?谢谢!

3 个答案:

答案 0 :(得分:3)

请注意HTTPService的这个迷人限制......

如果您设置http.requestTimeout方法,它将默认忽略您要求它为POST请求的事实并丢弃任何和所有标头。

出于某种原因,在Flex中,GET会转储所有标题。

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();

哦,是的,设置method =“POST”两次是故意的,更有趣的是,如果你在调试器中运行它,当它到达最后一行,http.send(),你看看对象的内部状态,它仍然设置为POST请求...

布偶。

答案 1 :(得分:2)

如果设置requestTimeout,那么您的请求会在超时时引发错误。所以你只需要向httpservice faultevent添加一个事件监听器。

答案 2 :(得分:0)

从Flex 4.5开始(可能更早),在超时错误的故障事件上有一个特定的故障代码:

在你的错误处理程序中:

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