ما هو SOAP؟
SOAP بروتوكول رسائل يعتمد على XML لخدمات الويب: كل طلب واستجابة عبارة عن Envelope مع Header اختياري وBody، وتُوصف العمليات والأنواع بمستند WSDL. لا يزال شائعاً في القطاع المصرفي والحكومي والتكامل المؤسسي، حيث تهم المخططات الصارمة وامتدادات WS-* للتوقيع والتشفير أكثر من حجم الحمولة.
كيفية استخدام مختبِر طلبات SOAP
- أدخل عنوان URL للخدمة واختر إصدار SOAP.
- اختر قالباً تجريبياً، أو افتح منشئ المغلّفات وولّد مغلّفاً من العملية والمعاملات، أو الصق مغلّفك الخاص.
- اضبط SOAPAction إذا كانت الخدمة تتطلبه.
- أرسل واقرأ مربع العطل (إن وُجد) واستجابة XML المنسّقة.
مزايا مختبِر طلبات SOAP
- دعم SOAP 1.1 و1.2 مع المعالجة الصحيحة لترويسة Content-Type وSOAPAction
- منشئ مغلّفات: العملية ومساحة الأسماء ومعاملات JSON ورمز WS-Security UsernameToken اختياري
- فحص المغلّف (سلامة البنية والإصدار وعنصر Body ومساحات الأسماء) ومنسّق XML
- استخراج الأعطال (faultcode/faultstring وCode/Subcode/Reason) وعرضها فوق الاستجابة
- استجابة 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 مع الإجراء داخل Content-Type. اختر الإصدار وستضبط الأداة الترويسات ومساحة أسماء المغلّف.
هل يمكنني إنشاء المغلّف من المعاملات؟
نعم. افتح منشئ المغلّفات، وأدخل اسم العملية ومساحة الأسماء وكائن JSON للمعاملات (تتحول الكائنات والمصفوفات المتداخلة إلى عناصر فرعية) ثم ولّد المغلّف. كما تُدعم ترويسات WS-Security UsernameToken اختيارياً.
كيف تُعرض الأعطال؟
تُستخرج أعطال SOAP (faultcode/faultstring في الإصدار 1.1 وCode/Reason/Subcode في الإصدار 1.2) وتُعرض فوق استجابة XML المنسّقة.
هل أحتاج إلى WSDL؟
لا. تعمل الأداة مع المغلّفات المجرّدة؛ استخدم ملف WSDL لديك لمعرفة أسماء العمليات ومساحات الأسماء.
ملاحظات تقنية
تستخدم طلبات SOAP 1.1 النوع text/xml; charset=utf-8 مع ترويسة 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 Securityتأمين خدمات الويب SOAP وXML: أمن النقل وسلامة الرسائل والتحقق من المخطط والهجمات الخاصة بـ XML.
- RFC 9110: HTTP Semanticsمعاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.