Ich habe eine Flex Anwendung, die Berichtsdaten von einem Jasper Server durch die Jasper Server Web Services API greifen muss. Flex Builder 3 macht eine gute Arbeit beim Generieren des Web-Service-Verbrauchscodes mit einer Ausnahme. Wenn Sie fragen, für eine Verzeichnisliste oder eine Bilanzierung von Berichtsparametern, JR Server Ebene XML gibt im SOAP Wrapper und Flex parst es einfach gut. Wenn Sie jedoch fragen Sie nach einem Bericht selbst, ob in XML oder PDF Format, es MIME Nachricht mit einigen beschreibenden XML als erster Teil zurück, als ein mehrteiliger kommt und der Bericht - auch wenn der Bericht selbst ist XML - wie der zweite Teil. Flex weiß nicht, was mit mehrteiligen Nachrichten zu tun ist, und klagt nur über ungültige XML.Parsen einer mehrteiligen SOAP-Antwort in Flex?
Hier ist ein Beispiel für die Antwort. Meine derzeitige Strategie besteht darin, einige Strings zu analysieren und die Bits einzeln zu verwalten. Aber hat Flex irgendwelche eingebauten Methoden, um damit umzugehen? (Ich habe nicht in der Lage gewesen, eine zu finden.)
------=_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äâ