Перехват исключений PHP в Flex без AMFPHP

#php #actionscript-3 #flex4 #amfphp

#php #actionscript-3 #flex4 #amfphp

Вопрос:

Я ищу способ перехвата исключения, создаваемого PHP во Flex с помощью HTTPService . Возможно ли это сделать без использования AMFPHP?

В моей текущей реализации, если исключение генерируется в PHP, FaultEvent.FAULT действительно отправляется на стороне Flex. Единственная проблема заключается в том, что строка сообщения об исключении нигде не найдена в FaultEvent .

Позвольте мне попытаться лучше объяснить с помощью примера. Допустим, у нас есть следующий PHP-код на стороне сервера:

 <?php
  throw new Exception("Exception message");
?>
  

На стороне flex, скажем, есть HTTPService экземпляр, который вызывает приведенный выше PHP-код. Более того, он вызывает следующую функцию на 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 в отладчике, но не смог его найти.

Спасибо

Комментарии:

1. RTFM: help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/…

2. @nikc: Вот что показывает трассировка (evt.toString): [Ошибка события ошибки =[Ошибка RPC faultString=»Ошибка HTTP-запроса» faultCode=»Сервер. Ошибка. Запрос «faultDetail=»Ошибка: [IOErrorEvent type=»IOError» bubbles=false cancelable=false eventPhase=2 text=»Ошибка #2032: ошибка потока. URL: 192.168.1.119/flex_ssh2_exception.php «] . URL: 192.168.1.119/flex_ssh2_exception.php «] MessageId=»07CC2B64-D064-8EB3-CF6D-8C74D4BE7125″ тип= «ошибка» пузырьки = false отменяемый = true eventPhase =2]

Ответ №1:

Основная проблема заключается в том, что Flash не может обработать сервер, повторно возвращает статус <> 200 http://www.robsondesign.com/blog/index.php/2009/04/16/flex-flash-and-http-status-codes /