我想實現這個場景邊界:WSO2缺少的multipart/form-data發佈
wso2Proxy發送POST到joao.php
joao.php得到的值id並返回。
如果我從瀏覽器中調用joao.php,並使用一個名爲id的字段,它可以工作。如果我在WSO2代理中執行相同的操作,則會出現php錯誤在multipart/form-data POST中缺少邊界。
我用TCPMon來分析調用,WSO2發送Content-Type:multipart/form-data但沒有邊界。
有人能指出我正確的方向嗎?
這裏有2個呼叫:
從瀏覽器:
POST /joao.php HTTP/1.1
Host: localhost:7590
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarytcskUke6yP5MNOzt
Origin: http://localhost:7590
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8
Referer: http://localhost:7590/joao.php
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Length: 135
Connection: keep-alive
------WebKitFormBoundarytcskUke6yP5MNOzt
Content-Disposition: form-data; name="id"
sd
------WebKitFormBoundarytcskUke6yP5MNOzt--
從WSO2代理:
POST /joao.php HTTP/1.1
Content-Type: multipart/form-data
Content-Length: 264
Host: localhost:7590
Connection: Keep-Alive
User-Agent: Synapse-PT-HttpComponents-NIO
--MIMEBoundary_4e039051f0592881a6551113d958f38436c2e8eef5b85bba
Content-Disposition: form-data; name="id"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
teste123
--MIMEBoundary_4e039051f0592881a6551113d958f38436c2e8eef5b85bba--
我對axis2.xml以下注釋的部分:
<!--messageFormatter contentType="multipart/form-data"
class="org.wso2.carbon.relay.ExpandingMessageFormatter"/-->
<!--messageBuilder contentType="multipart/form-data"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/-->
這是因爲如果我啓用它們,則內容將以XML形式發佈,而不是多部分/數據。
其結果是,這些都是針對多/數據使建設者和格式化:
<messageFormatter class="org.apache.axis2.transport.http.MultipartFormDataFormatter" contentType="multipart/form-data"/>
<messageBuilder class="org.apache.axis2.builder.MultipartFormDataBuilder" contentType="multipart/form-data"/>
這裏是我使用的代理服務器配置:
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="testeSendFile"
transports="http https"
startOnLoad="true">
<description/>
<target>
<inSequence>
<payloadFactory media-type="xml">
<format>
<params xmlns="">
<id>teste123</id>
</params>
</format>
<args/>
</payloadFactory>
<property name="messageType" value="multipart/form-data" scope="axis2"/>
<property name="DISABLE_CHUNKING"
value="true"
scope="axis2"
type="STRING"/>
<log level="full"/>
<send>
<endpoint>
<http method="POST" uri-template="http://localhost:7590/joao.php"/>
</endpoint>
</send>
<log level="full"/>
</inSequence>
</target>
</proxy>
什麼是你的ESB版本?發佈您的突觸配置。 – Bee
WSO2 ESB 6.1.1。我已編輯添加axis2.xml。 Thx – John
發佈您的突觸配置 – Bee