curl Befehl zu geben "no SOAPAction header!" - Fehler
Ich versuche, führen Sie die folgenden curl-Befehl, aber ich erhalte eine Fehlermeldung, die unten gezeigt:
Befehl:
curl -H "Content-Type: text/xml; charset=utf-8" \
-H "SOAPAction:" \
-d @amit.xml -X POST http://server-ip:8200/axis/services/SOAPRequestHandler
Fehler:
<?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>
Lese ich durch einige Artikel auf, wie dieses Problem zu beheben, aber nichts hilft. In der wsdl-Datei, die soapAction-Feld ist auch leer. Unten ist die wsdl-Datei den Inhalt:
<wsdl:operation name="processSync">
<wsdlsoap:operation soapAction=""/>
Könnte Sie bitte führe mich auf, was falsch sein könnte mit meinem Befehl?
- was versuchst du aus dieser Zeile: "-H "SOAPAction:" \" ? Nicht es zeigen, dass ist, wo das problem ist? versuchen Sie es mit diesem: wsdlbrowser.com um zu testen, Ihre WSDL
- Wie pro die man-Seite für curl-Befehl-H-option ist es, einen header hinzufügen. Also ich bin mit dieser option fügen Sie einen header "SOAPAction". Auch die wsdl gehostet wird, auf einem client-Netzwerk, so kann ich nicht verwenden, SOAP UI oder wsdlbrowser zu testen. Ich habe den login zu einem server, von dem die Konnektivität ist da & dort führe ich den curl Befehl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
curl hat eine spezielle syntax für den Header ohne Wert mit einem Semikolon, siehe cURL Mann Seite:
Jedoch die Angabe
-H "SOAPAction;"
noch endet in einer no SOAPAction header! Meldung, wenn ich eine Nachricht auf meine Axis Web-Service. Es funktioniert mit jedem Charakter wie-H "SOAPAction:;"
oder-H "SOAPAction:foo"
.Stellen Sie außerdem sicher, dass Ihre XML gültig ist.
Dort angeben de SoapAction :
curl --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: ACTION_YOU_WANT_TO_CALL" --data @FILE_NAME URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT
Beispiel:
curl --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:urn:my:service-Interaktion:Seife:einige-Aktion" --data @soap_envelope.txt http://192.168.1.1:8080/myservice