سؤال

كنت أحاول استرداد البيانات الثنائية عبر 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: الملف المحمّل هو نوع غير معروف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top