HttpService requestTimeout - PullRequest
       10

HttpService requestTimeout

1 голос
/ 25 августа 2009

Как определить, истекло ли время ожидания экземпляра HttpService? Спасибо!

Ответы [ 3 ]

3 голосов
/ 04 апреля 2011

Помните об этом очаровательном ограничении 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-запрос ...

Muppets.

2 голосов
/ 25 августа 2009

Если вы установите requestTimeout, ваш запрос вызовет ошибку, когда истечет время ожидания. Таким образом, вы можете просто добавить прослушиватель событий в httpservice faultevent.

0 голосов
/ 30 июня 2011

Начиная с Flex 4.5 (возможно, ранее) в событии сбоя есть специальный код ошибки для ошибок тайм-аута:

В вашем обработчике ошибок:

if(faultEvent.fault.faultCode == "Client.Error.RequestTimeout"){
  trace("TIMEOUT ERROR");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...