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 : String 、 uri : 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


Source: https://habr.com/ru/post/J91331/


All Articles