到目前为止,我一直使用简单的base64封装发送带有SOAP的附件,并将它们放在内联中 – 全部由CURL完成。 现在我有一个新的请求,其中附件需要作为MTOM附件发送,问题是:是否有可能与Linuxcurl?
我可以看到使用JAX-WS是可能的,但为了做到这一点,我们将不得不开发新的客户端,这对我们来说并不是最好的select。
请告诉我,如果有可能,如果是的话,给我任何提示如何做到这一点。
您可以将文件内容包含在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'Content-type: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>
这对你有用吗?