تحليل استجابة الصابون متعددة الأقليص في المرن؟

StackOverflow https://stackoverflow.com/questions/591587

  •  09-09-2019
  •  | 
  •  

سؤال

انا املك ثني التطبيق الذي يحتاج إلى الاستيلاء على بيانات التقارير من jasperreports server., ، عبر ال JasperReports Server Services Web Services API. باني فليكس 3. هل وظيفة لطيفة في إنشاء رمز استهلاك خدمات الويب، مع استثناء واحد. إذا طلبت وجود قائمة دليل أو محاسبة معلمات التقرير، خادم JR إرجاع عادي XML في ال صابون المجمع و ثني يوزعه على ما يرام. ومع ذلك، إذا طلبت تقرير نفسها، سواء في XML أو بي دي إف التنسيق، يعود كأعلى ميم رسالة مع بعض الوصف XML كجزء الأول والتقرير - حتى لو كان التقرير نفسه XML - كجزء الثاني. ثني لا يعرف ما يجب القيام به مع رسائل متعددة الأجزاء ويكتشف فقط حول غير صالح XML.

ها هي عينة من الاستجابة. استراتيجيتي الحالية هي القيام ببعض تحليل السلسلة وإدارة البتات بشكل فردي. لكن يفعل ثني هل لديك أي طرق مدمجة للتعامل مع هذا؟ (لقد كنت غير قادر على العثور على أي.)

------=_Part_2_27050467.1235668849951
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <0F082AF1DAF83B3077B1867B4FC8AAA6>

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
    <ns1:runReportResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://axis2.ws.jasperserver.jaspersoft.com">
        <runReportReturn xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;operationResult version=&quot;2.0.1&quot;&gt;\n\t&lt;returnCode&gt;&lt;![CDATA[0]]&gt;&lt;/returnCode&gt;\n&lt;/operationResult&gt;\n
        </runReportReturn>
    </ns1:runReportResponse>
</soapenv:Body>
</soapenv:Envelope>
------=_Part_2_27050467.1235668849951
Content-Type: application/pdf
Content-Transfer-Encoding: binary
Content-Id: <report>

%PDF-1.4\n%âãÏÓ\n1 0 obj <</Filter/FlateDecode/Length 29>>stream\nx+är\ná26S°00S\bIár\rá\näâ
هل كانت مفيدة؟

المحلول

ما سأقوله هو فقط ما أعتقده: قد أكون مخطئا لأنني لم أحاول ذلك.

لا أعتقد أن لديك الكثير من الخيارات. يمكن أن تقدم Flex HTTService (أو ما كنت تستخدمه) فقط تنسيقات البيانات (/ القليل منها) فقط. يرى هنا. وبعد لأي دفق مخصص سيتعين عليك استرجاعه ك object وتمريرها من خلال وحدة فك الترميز الخاصة بك. يبدو أن المرن لا يقوم بأي تحليل لرسالة MIME ولكن يعتمد على (وهو أيضا كيف يتصرف المتصفحات عادة) الخادم لتحديد المحتوى الذي يتم نقله. إذا كان الخادم يرسل ملف نصي فقط ولكن يغير نوع المحتوى ليقوله audio/mpeg أعتقد أنك سيكون لديك نفس المشكلة. حتى عندما يعرف المرن الساخن للتعامل مع النص.

إذا تمكنت من الوصول إلى أي وقت مضى للقيام بهذه التجربة (مع الملفات النصية كفي نوع MIME أو أيا كان الخيوط، فأخبرنا بذلك.

وفي الوقت نفسه، يمكنك إلقاء نظرة على SerializationFilter. وتستمر وإضافة نوع MIME جديد ل PDF!

نأمل أن تكون الحياة سهلة بعض الشيء مع المرن 4 و httpmultiservice..

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