从shell命令调用SOAP请求

从shell命令调用SOAP请求,shell,unix,soap,Shell,Unix,Soap,我使用curl向web服务发送SOAP请求,并使用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:Fau

我使用curl向web服务发送SOAP请求,并使用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>

客户机
WS3147E:错误:没有SOAPAction标头!

感谢您的帮助

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

-H "SOAPAction:"
在其中提供操作的名称。例如

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

从WSDL获取操作的名称(如果有的话)。例如,请参见。

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

不要忘记在SoapAction头中引用URI-规范要求如果URI不为null,然后它必须是双引号,即
SOAPAction:“http://my_example/my_action“
在bash linux中有没有其他方法可以在不使用curl的情况下实现这一点?