使用Linux CURL的SOAP MTOM附件

到目前为止,我一直使用简单的base64封装发送带有SOAP的附件,并将它们放在内联中 – 全部由CURL完成。 现在我有一个新的请求,其中附件需要作为MTOM附件发送,问题是:是否有可能与Linuxcurl

我可以看到使用JAX-WS是可能的,但为了做到这一点,我们将不得不开发新的客户端,这对我们来说并不是最好的select。

请告诉我,如果有可能,如果是的话,给我任何提示如何做到这一点。

您可以将文件内容包含在base64编码中,并使用curl post。

这里是一个例子:

  1. 从axis2安装mtom sample并为你工作
  2. 构建下面的示例req.xml

$ 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> 
  1. 使用curl发布请求

$ 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> 

这对你有用吗?