Android Flex的HTTPService调度ResultEvent而不是FaultEvent
我想知道Flex的HTTPService何时启动ResultEvent,何时发送FaultEvent 当服务器响应包含401 http状态代码错误Unauthorized时,HTTPService将调度ResultEvent而不是FaultEvent。我认为它应该发送一个FaultEvent。我说得对吗?如果没有,请告诉我 令人惊奇的是,当我在Flash Builder 4.7的Android模拟器下运行应用程序时,它确实会发送FaultEvent,但当我在设备上运行它时,它会发送ResultEvent。为什么会这样?有什么想法吗 测试应用程序代码 按下高级按钮HTTPService时,文本区域上的文本为:Android Flex的HTTPService调度ResultEvent而不是FaultEvent,android,actionscript-3,apache-flex,air,flex-mobile,Android,Actionscript 3,Apache Flex,Air,Flex Mobile,我想知道Flex的HTTPService何时启动ResultEvent,何时发送FaultEvent 当服务器响应包含401 http状态代码错误Unauthorized时,HTTPService将调度ResultEvent而不是FaultEvent。我认为它应该发送一个FaultEvent。我说得对吗?如果没有,请告诉我 令人惊奇的是,当我在Flash Builder 4.7的Android模拟器下运行应用程序时,它确实会发送FaultEvent,但当我在设备上运行它时,它会发送ResultE
Connecting to server using a high level component
...
Entering servicefaultHandler
HTTP status code is: 401
Connecting to server using a low level component
...
Entering openHandler
openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2]
Entering httpStatusHandler
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=401 redirected=false responseURL=null]
Entering completeHandler
completeHandler:
Connecting to server using a high level component
...
Entering serviceResultHandler
HTTP status code is: 401
Android设备上的结果
按下低级别按钮URL Loader时,文本区域上的文本为:
Connecting to server using a high level component
...
Entering servicefaultHandler
HTTP status code is: 401
Connecting to server using a low level component
...
Entering openHandler
openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2]
Entering httpStatusHandler
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=401 redirected=false responseURL=null]
Entering completeHandler
completeHandler:
Connecting to server using a high level component
...
Entering serviceResultHandler
HTTP status code is: 401
按下高级按钮HTTPService时,文本区域上的文本为:
Connecting to server using a high level component
...
Entering servicefaultHandler
HTTP status code is: 401
Connecting to server using a low level component
...
Entering openHandler
openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2]
Entering httpStatusHandler
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=401 redirected=false responseURL=null]
Entering completeHandler
completeHandler:
Connecting to server using a high level component
...
Entering serviceResultHandler
HTTP status code is: 401
当我在Flash Builder的模拟器上运行应用程序时,这两个组件都按预期工作,这意味着它们发送了一个FaultEvent和一个IOErrorEvent。在Android设备上,每个组件的行为都不正常,第一个组件调度ResultEvent,第二个组件调度Event.COMPLETE事件
请注意,在这两种情况下,两个组件都能感知到正确的HTTP状态代码
我假设运行时有问题,对吗?非常感谢您对此事的评论。我认为这里有一些误解需要首先澄清: 但从这个意义上讲,成功意味着我们成功地建立了联系并得到了回应 服务器使用任何HTTP状态代码响应都是完全有效的,在本例中,状态401-未经授权,表示您访问了服务器,但试图访问您没有权限访问的位置 。但这里的失败是没有建立连接或没有收到响应 More over FaultEvent是Fault error类的事件包装器,它表示远程过程调用RPC服务调用中的错误。最常见的变体是IOError 2032:Stream Error,它因其模糊性而臭名昭著 现在了解调试器和发布版本之间行为不同的原因: 当Capabilities.isDebugger为true时,闪存以不同的方式处理错误。一个是打开一个对话框,以便在发生错误时进行操作
这是推测,因为我找不到任何文档,但如果发现HTTPService将ResultEvent:401更改为FaultEvent:401,并利用调试错误对话框将其转换为故障错误,我也不会感到惊讶。您能发布代码吗