从shell命令调用SOAP请求

时间:2012-04-17 07:13:17

标签: shell unix soap

我使用curl将SOAP请求发送到Web服务并使用shell脚本获取响应。请在下面找到我正在使用的命令: -

curl  -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d @sample_request.txt -X POST http://someWebServiceURL

我收到错误响应,说没有SOAPAction标头。 PFB响应正文部分

<soapenv:Body>
<soapenv:Fault>
<faultcode>Client.NoSOAPAction</faultcode>
<faultstring>WSWS3147E: Error: no SOAPAction header!</faultstring>
</soapenv:Fault>
</soapenv:Body>

任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:8)

您需要提供SOAP操作的名称。你有:

-H "SOAPAction:"

在那里提供动作的名称。 E.g。

-H "SOAPAction: http://my_example/my_action"

如果有的话,从WSDL获取操作的名称。例如,见How do you determine a valid SoapAction?

答案 1 :(得分:0)

从服务的WSDL中,您可以找到SoapAction。您可以通过打开Web浏览器到服务的URL来找到您尝试调用和访问WSDL的操作。 使用Curl调用SoapAction,您应该通过“-H”指定Action,例如-H SOAPAction:http://tempuri.org/Execute