У меня есть Flex приложение, которое должно получить данные отчетов с JasperReports сервера через API JasperReports сервера Web Services. Flex Builder 3 делает хорошую работу по генерации кода потребления веб-сервисов за одним исключением. Если вы попросите список каталогов или учет параметров отчета, JR Сервера возвращает простой XML в SOAP обертку и Flex разбирает это просто отлично. Тем не менее, если вы попросите самого доклада, то ли в XML или формате PDF, он возвращается в качестве составного MIME сообщение с некоторыми описательной XML как в первой части, и доклад - даже если отчет сам по себе XML - как вторая часть. Flex не знает, что делать с многостраничными сообщениями и просто жалуется на недопустимый XML.Анализ многопоточного ответа SOAP в Flex?
Вот образец ответа. Моя текущая стратегия состоит в том, чтобы провести синтаксический анализ строк и управлять битами по отдельности. Но имеет ли Flex какие-либо встроенные методы для этого? (Я не смог найти.)
------=_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"><?xml version="1.0" encoding="UTF-8"?>\n<operationResult version="2.0.1">\n\t<returnCode><![CDATA[0]]></returnCode>\n</operationResult>\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äâ