2012-04-17 12 views
7

से एसओएपी अनुरोध का आह्वान करना मैं वेब सेवा के लिए एसओएपी अनुरोध भेजने और शेल स्क्रिप्टिंग का उपयोग करके प्रतिक्रिया प्राप्त करने के लिए कर्ल का उपयोग कर रहा हूं। कृपया नीचे दिए गए आदेश के नीचे खोजें: -खोल कमांड

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

मुझे एक त्रुटि प्रतिक्रिया मिल रही है जो कोई SOAPAction हेडर नहीं कहता है। पीएफबी प्रतिक्रिया शरीर भाग

<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

सोपएक्शन हेडर में यूआरआई को उद्धृत करना न भूलें - spec की आवश्यकता है कि यदि यह शून्य नहीं है, तो इसे डबल उद्धृत किया जाना चाहिए अर्थात 'SOAPAction:" http: // my_example/my_action "' – Petesh

0

सेवा के डब्ल्यूएसडीएल से, आप सोपएक्शन पा सकते हैं। और आप उस ऑपरेशन को पा सकते हैं जिसे आप सेवा के यूआरएल पर एक वेब ब्राउजर खोलकर डब्लूएसडीएल का आह्वान करने और एक्सेस करने का प्रयास कर रहे हैं। सोपएक्शन का आह्वान करने के लिए कर्ल का उपयोग करके, आपको "-H" द्वारा क्रिया निर्दिष्ट करनी चाहिए, जैसे -एच SOAPAction: http://tempuri.org/Execute

+0

कोई अन्य है कड़वाहट के बिना ऐसा करने के लिए बैश लिनक्स में रास्ता? –

संबंधित मुद्दे