使用Flex和AIR进行多个HTTPService请求

时间:2009-11-17 14:28:39

标签: flex air

我正在使用Flex Builder开发一个AIR应用程序,它要求我同时发出两个HTTPService请求。它们都使用HTTPService AS3类的不同实例。这两个服务都调用一个RESTful API,它当前在我的localhost(XAMPP)上运行,需要几秒钟才能响应(在实时服务器上更快)。

问题在于,大多数情况下,其中一个呼叫失败,但偶尔它们都会起作用。关于哪个呼叫将失败,它也是随机的。

提前致谢,

克里斯

这两个调用都使用这样的代码。这段代码基本上在两个类中重复。

//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 :(得分:0)

您可以粘贴收到的错误消息的详细信息吗?您确定这不是XMPP服务的问题吗?尝试使用curl等工具发送相同的请求来测试服务。

答案 1 :(得分:0)

如果发生故障事件,我就会重新发送服务请求,最多三次。

它不是我理想的解决方案,但它有效。

克里斯

答案 2 :(得分:0)

当我收到格式错误的XML时,我发现自己收到了这些错误,E4X不会/无法处理它。尝试重新发送失败的请求,并生成resultformat纯文本,然后检查输出。