curl命令给出“没有SOAPAction标题!”错误

时间:2014-05-15 20:27:27

标签: curl wsdl

我正在尝试运行以下curl命令,但我收到如下错误:

命令:

curl -H "Content-Type: text/xml; charset=utf-8" \
-H "SOAPAction:" \
-d @amit.xml -X POST http://server-ip:8200/axis/services/SOAPRequestHandler

错误:

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
<faultstring>no SOAPAction header!</faultstring>
   <detail>
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">stsosctwb10</ns2:hostname>
   </detail>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>

我阅读了几篇关于如何解决这个问题的文章,但没有任何帮助。在wsdl文件中,soapAction字段也是空的。下面是wsdl文件内容:

 <wsdl:operation name="processSync">

         <wsdlsoap:operation soapAction=""/>

你能指导一下我的命令可能出现什么问题吗?

2 个答案:

答案 0 :(得分:1)

curl对于没有使用分号的值的标头有特殊语法,请参阅cURL man page

  

如果发送带有无值的自定义标头,则其标头必须以分号结束,例如-H“X-Custom-Header;”发送“X-Custom-Header:”

但是,当我向Axis Web服务发布消息时,指定-H "SOAPAction;"仍会在 no SOAPAction header!消息中结束。它适用于-H "SOAPAction:;"-H "SOAPAction:foo"等任何字符。

确保您的XML有效。

答案 1 :(得分:-1)

指定de SoapAction:

curl --header&#34; Content-Type:text / xml; charset = UTF-8&#34; --header&#34; SOAPAction:ACTION_YOU_WANT_TO_CALL&#34; --data @FILE_NAME URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT

实施例: curl --header&#34; Content-Type:text / xml; charset = UTF-8&#34; --header&#34; SOAPAction:urn:my:service-interaction:soap:some-action&#34; --data @ soap_envelope.txt http://192.168.1.1:8080/myservice