У меня есть код, в котором сначала мне нужно войти в систему и установить COOKIES, URL-адрес следующего вызова, который в ответ создает файл PDF. Как сохранить файл на диске? Я включил:
<messageFormatter contentType="multipart/form-data" class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
и
<messageBuilder contentType="multipart/form-data" class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
Я думаю, что могу получить BASE64 этого файла, но получаю сообщение об ошибке:
[2020-08-05 18:25:31,332] [EI-Core] ERROR - RelayUtils Error while building Passthrough stream
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte 0xe5 (at char #10, byte #-1)
...
Мой код :
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="edi.visma.login" xmlns="http://ws.apache.org/ns/synapse">
<payloadFactory media-type="xml">
<format>
<root>
<password>pass12345</password>
<username>user12345</username>
</root>
</format>
</payloadFactory>
<property name="messageType" scope="axis2" type="STRING" value="application/x-www-form-urlencoded"/>
<property name="DISABLE_CHUNKING" scope="axis2" value="true"/>
<call>
<endpoint>
<http method="POST" uri-template="https://www.proceedo.net/suppliercenter/common/logon.do"/>
</endpoint>
</call>
<property expression="$trp:Set-Cookie" name="setCookieHeader"
scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
<payloadFactory media-type="xml">
<format>
<root>
<mtfId>150</mtfId>
<orderSno>50339375</orderSno>
</root>
</format>
</payloadFactory>
<property name="messageType" scope="axis2" type="STRING" value="application/x-www-form-urlencoded"/>
<property expression="$ctx:setCookieHeader" name="Cookie"
scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/>
<property name="DISABLE_CHUNKING" scope="axis2" value="true"/>
<call>
<endpoint>
<http method="POST" uri-template="https://www.proceedo.net/suppliercenter/common/orderexport.do"/>
</endpoint>
</call>
<log level="full"/>
</sequence>