HTTPService
を使用して、FlexでPHPによってスローされた例外をキャッチする方法を探しています。 AMFPHPを使わずにを実行することはできますか?AMFPHPなしでFlexでPHP例外をキャッチ
私の現在の実装では、PHPで例外がスローされた場合、Flex側で実際にFaultEvent.FAULT
が送出されます。唯一の問題は、例外のメッセージ文字列がFaultEvent
に見つからないことです。
例の助けを借りてより説明してみましょう。私たちは、サーバー側で、次のPHPコードを持っているとしましょう:フレックス側
<?php
throw new Exception("Exception message");
?>
、上記のPHPコードを呼び出すHTTPService
インスタンスがあると言います。また、それはFaultEvent.FAULT
上で、次の関数を呼び出します。
private function onFaultyResult(evt:FaultEvent):void {
//How do I get the exception message here?
}
は、どのように私は、この関数でPHPから例外メッセージを得ることができますか?
注:trace(evt.toString())
が得られます。
[FaultEvent fault=[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: 192.168.1.119/exception.php"]. URL: 192.168.1.119/exception.php"] messageId="7FF021A3-8C83-CB14-081D-8C8438802204" type="fault" bubbles=false cancelable=true eventPhase=2]
また、私は、デバッガでevt
の他の分野で「例外メッセージ」を探したが、それを見つけることができませんでした。
RTFM:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript /3/mx/rpc/events/FaultEvent.html –
@nikc:これはtrace(evt.toString)が示すものです: [FaultEvent fault = [RPCフォールトfaultString = "HTTPリクエストエラー" faultCode = "Server.Error。リクエスト "faultDetail ="エラー:[IOErrorEvent type = "ioError" bubbles = false cancelable = false eventPhase = 2 text = "エラー#2032:ストリームエラー。 URL:http://192.168.1.119/flex_ssh2_exception.php "]。URL:http://192.168.1.119/flex_ssh2_exception.php"] messageId = "07CC2B64-D064-8EB3-CF6D-8C74D4BE7125" type = "fault"バブル= false cancelable = true eventPhase = 2] –