发送带有curl的MTOM附件-接收端出现错误“无法确定SOAP操作”

问题描述

通过外壳发送带有curl的MTOM附件时,我遇到一个奇怪的问题。

我的卷发看起来像这样:

curl -v -k -u ${USER}:${PASS} \
--header 'Content-Type: multipart/related; type="application/xop+xml"; start="0968015446"; start-info="text/xml"; boundary="--=_Part_4_1959909680.1544697065790"' \
--header 'MIME-Version: 1.0' \
--header 'SOAPAction: ""' \
--header 'Accept-Encoding: gzip,deflate' \
--header 'Connection: keep-alive' \
--data-binary @${REQUEST_BODY} \
${SERVICE}
> ${ANS}

其中REQUEST_BODY是以下请求:

----=_Part_4_1959909680.1544697065790
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-transfer-encoding: 8bit
Content-ID: 0968015446



<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:us="http://test.test.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <us:dataUpload>
         <uploadedPackage>
            <user>[email protected]</user>
            <dataPackage><inc:Include href="cid:1098502624496" xmlns:inc="http://www.w3.org/2004/08/xop/include"/></dataPackage>
            <fileName>TEST_1234_X</fileName>
         </uploadedPackage>
      </us:dataUpload>
   </soapenv:Body>
</soapenv:Envelope>


----=_Part_4_1959909680.1544697065790
Content-Type: application/zip; name=TEST_1234_X.ZIP
Content-transfer-encoding: binary
Content-ID: <1098502624496>
Content-disposition: attachment; name="TEST_1234_X.ZIP"; filename="TEST_1234_X.ZIP"



*DATA*


----=_Part_4_1959909680.1544697065790--

日志:

> POST /Upload/DataUpload HTTP/1.1
> Authorization: Basic XXXXXXXXXXX
> User-Agent: curl/7.29.0
> Host: localhost:8012
> Accept: */*
> Content-Type: multipart/related; type="application/xop+xml"; start="0968015446"; start-info="text/xml"; boundary="--=_Part_4_1959909680.1544697065790"
> MIME-Version: 1.0
> SOAPAction: ""
> Accept-Encoding: gzip,deflate
> Connection: keep-alive
> Content-Length: 1517
> Expect: 100-continue
> 
< HTTP/1.1 100 Continue
} [data not shown]
< HTTP/1.1 500 Internal Server Error

接收端的错误是:

Unable to determine the SOAP operation:
java.io.IOException: malformed boundary line
at com.vordel.mime.BoundaryInputStream.nextPart(BoundaryInputStream.java:281)
at com.vordel.mime.Multipart.parse(Multipart.java:115)
at com.vordel.mime.Body.parse(Body.java:281)
at com.vordel.mime.CompoundBody.getStartPart(CompoundBody.java:113)
at com.vordel.mime.XMLBody.locate(XMLBody.java:109)
at com.vordel.mime.XMLBody.getDocument(XMLBody.java:87)
at com.vordel.common.soap.soapUtils.getSOAPOperationQName(SoapUtils.java:343)
at com.vordel.circuit.ws.WSProcessor.invoke(WSProcessor.java:252)
at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:148)
at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.java:40)
at com.vordel.circuit.InvocationEngine.recordCircuitInvocation(InvocationEngine.java:275)
at com.vordel.circuit.InvocationEngine.processMessage(InvocationEngine.java:237)
at com.vordel.circuit.SyntheticCircuitChainProcessor.invoke(SyntheticCircuitChainProcessor.java:65)
at com.vordel.dwe.http.HTTPPlugin.processRequest(HTTPPlugin.java:420)
at com.vordel.dwe.http.HTTPPlugin.invokedispose(HTTPPlugin.java:439)
at com.vordel.dwe.http.HTTPPlugin.invoke(HTTPPlugin.java:142)

我不知道出了什么问题,我想知道java.io.IOException:格式错误的边界线是否与boundary =“-= _ Part_4_1959909680.1544697065790”或完全不同的边界有关?

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)