BinaryHTTPServiceまたはHTTPServiceがByteArrayデータを受け入れられるようにする方法

開発プロセス中に、HTTPServiceを介してサーバーからバイナリデータを受信する方法を見つけるタスクがありました。 mxパッケージのHTTPServiceだけでは、ByteArrayで結果を取得できません。 これは、internalSend関数のmx.messaging.channels.DirectHTTPChannelクラスで確認できます。



  1. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  2. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  3. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  4. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  5. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  6. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  7. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  8. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  9. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  10. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  11. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  12. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  13. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  14. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  15. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  16. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  17. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  18. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  19. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  20. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  21. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  22. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  23. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  24. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  25. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  26. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  27. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  28. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }



  29. package mx.messaging.channels { public class DirectHTTPChannel extends Channel { ..... override protected function internalSend ( msgResp : MessageResponder ) : void { var httpMsgResp : DirectHTTPMessageResponder = DirectHTTPMessageResponder ( msgResp ) ; var urlRequest : URLRequest ; try { urlRequest = createURLRequest ( httpMsgResp. message ) ; } catch ( e : MessageSerializationError ) { httpMsgResp.agent.fault ( e.fault, httpMsgResp. message ) ; return ; } var urlLoader : URLLoader = httpMsgResp.urlLoader; urlLoader. addEventListener ( ErrorEvent . ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( IOErrorEvent . IO_ERROR , httpMsgResp.errorHandler ) ; urlLoader. addEventListener ( SecurityErrorEvent . SECURITY_ERROR , httpMsgResp.securityErrorHandler ) ; urlLoader. addEventListener ( Event . COMPLETE , httpMsgResp.completeHandler ) ; urlLoader. addEventListener ( HTTPStatusEvent . HTTP_STATUS , httpMsgResp.httpStatusHandler ) ; urlLoader. load ( urlRequest ) ; } ..... } }





URLLoaderでは、デフォルトでdataFormatパラメーターがURLLoaderDataFormat.TEXTに設定されており、ByteArrayの形式でデータを受信するには、URLLoaderDataFormat.BINARYが必要です。



すべてが非常に簡単に行われます。 最初に必要なことは、DirectHTTPChannelクラスの拡張機能を作成し、urlLoaderパラメーターを設定することですdataFormat = URLLoaderDataFormat.BINARY;

  1. パブリック クラス DirectHTTPBinaryChannelはDirectHTTPChannelを拡張します
  2. {
  3. パブリック 関数 DirectHTTPBinaryChannel id Stringuri String = ""
  4. {
  5. super id、 uri ;
  6. }
  7. 保護された 関数 getMessageResponder agent MessageAgent、
  8. メッセージ IMessage MessageResponder
  9. {
  10. 新しい DirectHTTPBinaryMessageResponder エージェント、 メッセージこれ新しい URLLoader )を 返します。
  11. }
  12. 保護された 関数 internalSend msgResp MessageResponder )をオーバーライドします void
  13. {
  14. var httpMsgResp DirectHTTPBinaryMessageResponder = DirectHTTPBinaryMessageResponder msgResp ;
  15. var urlRequest URLRequest ;
  16. 試してみる
  17. {
  18. urlRequest = createURLRequest httpMsgResp。message ;
  19. }
  20. catch e MessageSerializationError
  21. {
  22. httpMsgResp.agent.fault e.fault、httpMsgResp。message ;
  23. 帰る
  24. }
  25. var urlLoader URLLoader = httpMsgResp.urlLoader;
  26. urlLoader。 dataFormat = URLLoaderDataFormatバイナリ ;
  27. urlLoader。 addEventListener ErrorEvent。ERROR 、httpMsgResp.errorHandler ;
  28. urlLoader。 addEventListener IOErrorEvent。IO_ERROR 、httpMsgResp.errorHandler ;
  29. urlLoader。 addEventListener SecurityErrorEvent。SECURITY_ERROR 、httpMsgResp.securityErrorHandler ;
  30. urlLoader。 addEventListener イベント .COMPLETE、httpMsgResp.completeHandler ;
  31. urlLoader。 ロード urlRequest ;
  32. }
  33. }


DirectHTTPBinaryChannelを使用できるように、HTTPServiceクラスの拡張を作成します。

  1. パブリック クラス BinaryHTTPServiceはHTTPServiceを拡張します
  2. {
  3. protected static var binaryChannel チャンネル;
  4. protected static var binaryChannelSet ChannelSet;
  5. パブリック 関数 BinaryHTTPService rootURL String = null 、destination String = null
  6. {
  7. super rootURL、destination ;
  8. }
  9. パブリック 関数の 送信をオーバーライド パラメーター Object = null AsyncToken
  10. {
  11. if useProxy == false
  12. {
  13. / *バイナリチャネルの使用を強制* /
  14. if binaryChannelSet == null
  15. {
  16. var dcs ChannelSet = new ChannelSet ;
  17. binaryChannel = new DirectHTTPBinaryChannel "direct_http_binary_channel" ;
  18. dcs.addChannel binaryChannel ;
  19. channelSet = dcs;
  20. binaryChannelSet = dcs;
  21. }
  22. else if channelSet = binaryChannelSet
  23. {
  24. channelSet = binaryChannelSet;
  25. }
  26. }
  27. スーパーを 返します。 送信 パラメーター ;
  28. }
  29. }


作業クラスの例: BinaryHTTPService DirectHTTPBinaryChannel



All Articles