我使用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>
任何帮助表示赞赏!!
答案 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。