2012-04-17 23 views
7

Web servisine SOAP isteği göndermek ve yanıtı kabuk komut dosyası kullanarak almak için curl kullanıyorum. i kullanıyorum komutu aşağıda bulabilirsiniz: - Ben SOAPAction başlığını bildiren bir hata yanıtını alıyorumSOAP isteğini kabuk komutundan çağırma

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

. PFB yanıt gövde kısmı

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

bir Yardım takdir !!

cevap

8

SOAP eyleminin adını belirtmeniz gerekir. Sahip olduğunuz Eylem adını verin. Örneğin.

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

Eğer varsa, eylemin adını WSDL'den alın. Ör., Bakınız How do you determine a valid SoapAction?.

+3

SoapAction üstbilgisindeki URI'yi belirtmeyi unutmayın - bu özellik, null değilse çift tırnaklı olmalıdır, yani "SOAPAction:" http: // my_example/my_action "' – Petesh

0

Servisin WSDL'sinden SoapAction'ı bulabilirsiniz. Ayrıca, hizmetin URL'sine bir web tarayıcısı açarak WSDL'ye erişmeye çalıştığınız işlemi bulabilir ve erişebilirsiniz. SoapAction'ı çağırmak için Curl'i kullanarak, -H SOAPAction: http://tempuri.org/Execute gibi "-H" ile eylemi belirtmelisiniz.

+0

başka var mıdır? Bash linux içinde yol bu kıvırmadan yapmak için? –