كيف تجعل urlloader يعيد asynctoken؟
-
21-09-2019 - |
سؤال
كنت أحاول استرداد البيانات الثنائية عبر HTTP لتطبيق Flex الخاص بي ، وكنت أتعامل مع بعض الكتل المتعثرة. لا يبدو أن Httpservice يتعامل مع البيانات الثنائية بشكل جيد ، كما قال الناس لاستخدام urlloader. لكن Urlloader ليس لديه واجهة غير متصلة/iresponder التي توفرها HttPservice.
لذلك ، قمت ببعض البحث ولم أتمكن من العثور على أي شخص يوسع Urlloader لتوفير هذا النوع من الوظائف. تقدمت وأخذت طعنة في ذلك بنفسي: http://pastebin.com/d7369d0e0
في الأساس ، يلف urlloader و asynctoken ، ويخطط لأحداث كاملة ، io_error ، و security_error من urlloader إلى النتائج/الأخطاء التي تربى على asynctoken.
الاستخدام الأساسي:
var tidbitLoader:AsyncURLLoader = new AsyncURLLoader();
tidbitLoader.dataFormat = URLLoaderDataFormat.BINARY;
var asyncToken:AsyncToken = tidbitLoader.load(new URLRequest("http://localhost/SampleTidbit.swf"));
asyncToken.addResponder(this);
public function result(resultEvent:Object):void
{
trace("result");
}
public function fault(faultEvent:Object):void
{
var fault:FaultEvent = faultEvent as FaultEvent;
trace("fault: " + fault.toString());
}
هل هذه هي الطريقة الصحيحة للتعامل مع المشكلة؟ هل هناك حلول موجودة؟ أحب أن أسمع ردود الفعل.
شكرًا،
كارثيك
المحلول
استخدم ال resultFormat = text
على ال HTTPService
ثم قم بإنشاء جديد ByteArray
و اتصل writeUTFBytes
لكتابة النص من HTTPService
نتيجة ل ByteArray
. ثم يجب أن تكون قادرًا على ضبط ذلك ByteArray
إلى SWFLoader.source
أو أتصل Loader.loadBytes
.
نصائح أخرى
لقد جربت الحل الخاص بك جيمس مع تطبيق Air 1.5 ، لكنني أحصل على الخطأ التالي عندما قمت بتعيين BytearRay على swfloader.source. أيه أفكار؟ اعتقدت أنني قرأت في مكان ما أن الهواء يغير رؤوس HTTP وقد يكون هذا هو السبب؟ شكرا بن.
debug] mx.messaging.channel 'direct_http_channel' إرسال القناة رسالة: (mx.messaging.messages :: httprequestmessage)#0 body = (object)#1 clientId = (null) contentType = "application/x-ww-form-- urlencoded "destination =" defaulthttp "headers = (object)#2 httpheaders = (object)#3 messageId =" 3044E76C-CF0E-2D5F-96BE-74CFF62098B0 "http://www.myurl.com/test.jpg[info] mx.messaging.producer '4fa2ccf4-2b3e-4eab-2873-74cff612aa72 producter. 2D5F-96BE-74CFF62098B0 '. ÿøÿà error #2044: unhandled ioerrorevent:. النص = خطأ #2124: الملف المحمّل هو نوع غير معروف.