到目前为止,我一直在使用简单的base64编码通过SOAP发送附件并将其内联-所有这些都由CURL完成。现在我有一个新请求,其中附件需要作为MTOM附件发送,问题是:linux curl是否可能?可能我需要multipart/related
或类似内容类型。
我看到可以使用JAX-WS,但是要做到这一点,我们必须开发一个新的客户端,这实际上并不是我们的最佳选择。
[请告诉我是否可行,如果可以,请给我任何提示。
您可以使用base64编码并使用curl post包含文件内容。
这里是一个例子:
$ cat req.xml
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mtom="http://ws.apache.org/axis2/mtomsample/" xmlns:xm="http://www.w3.org/2005/05/xmlmime">
<soap:Header/>
<soap:Body>
<mtom:AttachmentRequest>
<mtom:fileName>one.txt</mtom:fileName>
<mtom:binaryData xm:contentType="application/txt">SSBhbSB0aGUgZ3JlYXRlc3Qu</mtom:binaryData>
</mtom:AttachmentRequest>
</soap:Body>
</soap:Envelope>
$ cat req.xml | curl -X POST -H'内容类型:application / soap + xml'-d @-http://yourmachine.com:8080/axis2/services/MTOMSample.MTOMSampleSOAP12port_http/
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<ns2:AttachmentResponse xmlns:ns2="http://ws.apache.org/axis2/mtomsample/">
File saved succesfully.
</ns2:AttachmentResponse>
</soapenv:Body>
</soapenv:Envelope>
这对您有用吗?