Несколько запросов HTTPService с Flex и AIR - PullRequest
0 голосов
/ 17 ноября 2009

Я разрабатываю приложение AIR с Flex Builder, которое требует от меня одновременного выполнения двух запросов HTTPService. Они оба используют разные экземпляры класса HTTPService AS3. Обе службы вызывают API-интерфейс RESTful, который в настоящее время работает на моем локальном хосте (XAMPP), и на ответ требуется несколько секунд (намного быстрее на живом сервере).

Проблема в том, что большую часть времени один из вызовов не срабатывает, однако иногда они оба работают. Также случайно, какой вызов не удастся.

Заранее спасибо,

Chris

Оба вызова используют код примерно так. Этот код в основном повторяется в двух классах.

//in constructor 
brokerageService = new HTTPService();
brokerageService.resultFormat = HTTPService.RESULT_FORMAT_E4X;
brokerageService.addEventListener(ResultEvent.RESULT, onBrokerageResult);
brokerageService.addEventListener(FaultEvent.FAULT, onFault); 
//call 
public function findBrokerages(type:String, value:String):void{
        var url:String = serviceURL + "Contacts/findBrokerage/" + type + "/" + value + ".xml";
        brokerageService.url = url;
        brokerageService.send();
} 
//response 
private function onBrokerageResult(e:ResultEvent):void{

        var response:XML = brokerageService.lastResult as XML;
        etc...
} 
// handle error 
private function onFault(e:FaultEvent):void{
        trace(e.target + " " + e.target.url);
        trace(e);
        dispatchEvent(new ServiceEvent(ServiceEvent.CONNECTION_PROBLEM, true));
}

Ответы [ 3 ]

0 голосов
/ 18 ноября 2009

Я прибег к повторной отправке запроса на обслуживание, если происходит событие сбоя, максимум три раза.

Это не мое идеальное решение, но оно работает.

Chris

0 голосов
/ 18 ноября 2009

Я обнаружил, что получаю эти ошибки, когда получаю искаженный XML в результате, E4X не может / не может справиться с этим. Попробуйте переслать сбойный запрос и введите формат результата в виде простого текста, а затем проверьте вывод.

0 голосов
/ 17 ноября 2009

Можете ли вы вставить данные полученного сообщения об ошибке? Вы уверены, что это не проблема со службой XMPP? Попробуйте протестировать сервис, отправив те же запросы с помощью инструмента, такого как curl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...