2012-04-17 36 views
7

Utilizzo di arricciatura per inviare una richiesta SOAP a un servizio Web e ottenere la risposta utilizzando lo script di shell. si prega di trovare sotto il comando sto usando: -Invocazione della richiesta SOAP dal comando shell

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

sto ottenendo una risposta di errore che dice senza intestazione SOAPAction. PFB corpo risposta parte

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

Ogni aiuto è apprezzato !!

risposta

8

È necessario fornire il nome dell'azione SOAP. Hai:

-H "SOAPAction:" 

Fornire il nome dell'azione in là. Per esempio.

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

Ottieni il nome dell'azione dal WSDL, se ne hai uno. Ad esempio, vedere How do you determine a valid SoapAction?.

+3

Non dimenticare di citare l'URI nell'intestazione SoapAction: la specifica richiede che, se non è nullo, deve essere quotata doppia, ad esempio 'SOAPAction:" http: // mio_esempio/mia_azione "' – Petesh

0

Dal WSDL del servizio, è possibile trovare SoapAction. E puoi trovare l'operazione che stai tentando di richiamare e accedere al WSDL aprendo un browser Web all'URL del servizio. Utilizzando Curl per richiamare SoapAction, è necessario specificare l'azione per "-H", ad esempio -H SOAPAction: http://tempuri.org/Execute.

+0

c'è qualche altro modo in bash Linux per fare questo senza ricciolo? –