SOAP क्या है?
SOAP वेब सर्विस के लिए XML-आधारित मैसेजिंग प्रोटोकॉल है: हर रिक्वेस्ट और रिस्पॉन्स एक Envelope है जिसमें वैकल्पिक Header और एक Body होती है, और ऑपरेशन व टाइप WSDL दस्तावेज़ में वर्णित होते हैं। बैंकिंग, सरकारी और एंटरप्राइज़ इंटीग्रेशन में यह अब भी आम है, जहाँ सख़्त स्कीमा और साइनिंग व एन्क्रिप्शन के WS-* एक्सटेंशन पेलोड साइज़ से ज़्यादा मायने रखते हैं।
SOAP रिक्वेस्ट टेस्टर कैसे इस्तेमाल करें
- सर्विस का URL डालें और SOAP वर्शन चुनें।
- कोई डेमो टेम्पलेट चुनें, या envelope बिल्डर खोलकर operation + पैरामीटर से envelope बनाएँ, या अपना envelope पेस्ट करें।
- अगर सर्विस को ज़रूरत हो तो SOAPAction सेट करें।
- भेजें और fault बॉक्स (अगर हो) तथा फ़ॉर्मेट किया गया XML रिस्पॉन्स पढ़ें।
SOAP रिक्वेस्ट टेस्टर की खूबियाँ
- SOAP 1.1 और 1.2, सही Content-Type तथा SOAPAction हैंडलिंग के साथ
- Envelope बिल्डर: operation, namespace, JSON पैरामीटर और वैकल्पिक WS-Security UsernameToken
- Envelope जाँच (well-formedness, वर्शन, body एलिमेंट, namespaces) और XML फ़ॉर्मेटर
- Fault निकालना (faultcode/faultstring, Code/Subcode/Reason) — रिस्पॉन्स के ऊपर दिखाया जाता है
- raw व्यू और हेडर तालिका के साथ pretty-print किया गया XML रिस्पॉन्स
SOAP रिक्वेस्ट टेस्टर का उदाहरण
कैलकुलेटर सर्विस को कॉल करना
इनपुट:
POST http://www.dneonline.com/calculator.asmx
SOAPAction: "http://tempuri.org/Add"
<soapenv:Envelope …><soapenv:Body><tns:Add><tns:intA>7</tns:intA><tns:intB>5</tns:intB></tns:Add></soapenv:Body></soapenv:Envelope>आउटपुट:
200 OK · SOAP 1.1 response · Body element: AddResponse
<soap:Envelope …>
<soap:Body>
<AddResponse xmlns="http://tempuri.org/">
<AddResult>12</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope>SOAP रिक्वेस्ट टेस्टर के बारे में अक्सर पूछे जाने वाले सवाल
यहाँ SOAP 1.1 और 1.2 में क्या अंतर है?
SOAP 1.1 में Content-Type: text/xml के साथ अलग SOAPAction हेडर भेजा जाता है; SOAP 1.2 में application/soap+xml भेजा जाता है और action उसी Content-Type के अंदर होता है। आप वर्शन चुनें, टूल हेडर और envelope का namespace ख़ुद सेट कर देता है।
क्या मैं पैरामीटर से envelope बना सकता हूँ?
हाँ। envelope बिल्डर खोलें, operation का नाम, namespace और पैरामीटर का JSON ऑब्जेक्ट डालें (नेस्टेड ऑब्जेक्ट और array चाइल्ड एलिमेंट बन जाते हैं) और envelope बनाएँ। वैकल्पिक WS-Security UsernameToken हेडर भी सपोर्ट किए जाते हैं।
fault कैसे दिखाए जाते हैं?
SOAP Fault (1.1 के faultcode/faultstring और 1.2 के Code/Reason/Subcode) निकालकर फ़ॉर्मेट किए गए XML रिस्पॉन्स के ऊपर दिखाए जाते हैं।
क्या मुझे WSDL चाहिए?
नहीं। टूल सादे envelope के साथ काम करता है; operation के नाम और namespace जानने के लिए अपना WSDL इस्तेमाल करें।
तकनीकी नोट्स
SOAP 1.1 रिक्वेस्ट text/xml; charset=utf-8 और quote में लिखा SOAPAction हेडर इस्तेमाल करती हैं। SOAP 1.2 रिक्वेस्ट application/soap+xml; charset=utf-8; action="…" इस्तेमाल करती हैं। null पैरामीटर xsi:nil="true" एलिमेंट के रूप में लिखे जाते हैं।
संदर्भ
- Extensible Markup Language (XML) 1.0 (Fifth Edition)XML दस्तावेज़ को वेल-फ़ॉर्म्ड क्या बनाता है: एलिमेंट, एट्रिब्यूट, एंटिटी, कैरेक्टर एन्कोडिंग और प्रोलॉग।
- OWASP Cheat Sheet Series: Web Service SecuritySOAP और XML वेब सर्विस को सुरक्षित करना: ट्रांसपोर्ट सुरक्षा, मैसेज अखंडता, स्कीमा वैलिडेशन और XML-विशिष्ट हमले।
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।