2012-04-17 2 views
7

curl을 사용하여 웹 서비스에 SOAP 요청을 보내고 쉘 스크립팅을 사용하여 응답을받습니다. 아래 명령을 사용하십시오. -쉘 명령에서 SOAP 요청 호출

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> 

도움이 되었습니까?

답변

8

SOAP 작업의 이름을 제공해야합니다. 귀하는 :

-H "SOAPAction:" 

조치 이름을 입력하십시오. 예 :

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

WSDL에서 조치 이름을 얻으십시오 (있는 경우). 예 : How do you determine a valid SoapAction? 참조

+3

SoapAction 헤더의 URI를 인용하는 것을 잊지 마세요. 스펙에서는 null이 아닌 경우 큰 따옴표로 묶어야합니다. 즉, 'SOAPAction : http : // my_example/my_action "' – Petesh

0

서비스의 WSDL에서 SoapAction을 찾을 수 있습니다. 또한 웹 브라우저에서 서비스 URL을 열어 호출하려는 작업을 찾고 WSDL에 액세스 할 수 있습니다. Curl을 사용하여 SoapAction을 호출하려면 -H SOAPAction : http://tempuri.org/Execute과 같이 "-H"로 동작을 지정해야합니다.

+0

curl없이 이것을 할 수있는 bash 리눅스에서? –