السلام عليكم ورحمة الله و بركاته جميعا.
لمن يمكن ان يحتاج مثل هذا الشيء و لكي تعم الفائدة...
كنت في الاونة الاخيرة عندي وظيفة استدعاء لـ ASP.NET Web Service من صفحة تقليدية بلغة ASP 3.0....
كل ما تحتاجه هو ان تعرف خدمة الويب بلغة ASP.NET و معرفة ما اذا كان لها عناصر ادخال ام لا --Input Paramters -- و ما نوع النتيجة التي تعود او ترجع لنا من هذه الخدمة
غالبا ما تكون النتائج من استخدام ASP.NET Web Services عبارة عن صفحة XML او DataSet و تكمن المشكلة فيما لو كان لهذه ASP.NET Web Services اكثر من عنصر ادخال و نتيجتها تكون DataSet و ليس String أو اي شيء آخر
----- سامحوني مصطلحاتي العربية تكاد تكون مخطئة لكني لا اعرفها ... عيب الدراسة في الخارج ----
على كل حال... كل ما تحتاجه هو معرفة قليلة باستخدام SOAP أو Simple Object Access Protocol بالاضافة الى معرفة ايضا بالـ XML و كذلك ايضا كائن XML DOM --Document Object Model -- ....
في حالتنا هذا سنحتاج الى الكائنين الاخيرين بالاضافة الى كائن ServerXMLHTTP ....
الكود هو كالتالي:
vURL = "http://www.yourserver.com/YourWebServicePage.asmx/YourWebServiceFunction?Parameter1=" & vParameter1 &"&Parameter2=" & vParameter1
Set oXMLHTTP = server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
Set objXML = Server.CreateObject("MSXML2.DOMDocument")
objXML.async = FALSE
oXMLHTTP.open "GET", vURL, FALSE
oXMLHTTP.send
--- لا بد من كتابة هذا السطر كي يعرف الكائن ان النتيجة هي XML
Response.ContentType = "text/xml"
myXML = oXMLHTTP.responseXML.xmlيمكنك استدعاء عنوان الـ ASP.NET Web Services بطريقتين.
الطريقة الاولى هي المذكورة في الكود السابق. فاذا تطلبت ASP.NET Web Services عناصر ادخال فانك يمكنك ادخالها ضمنا على العنوان....
بمعنى: العنوان الرئيسي للصفحة التي تحتوي على ASP.NET Web Services هو
"http://www.yourserver.com/YourWebServicePage.asmx
و الدالة التي تريد طلبها اسمها: YourWebServiceFunction و لها عنصري ادخال 1 & 2
و يتم استدعائها بهذه الطريقة كما هو مذكور سابقا في اول كود
الطريقة الثانية هي ان تستدعيها باستخدام كائن SOAP كالتالي:
تصنع كائن جديد لـ SOAP و تفعل التالي:
Set ObjSoap= Server.CreateObject("MSSOAP.SoapClient30")
ObjSoap.ClientProperty("ServerHTTPRequest")=True
ObjSoap.MSSoapInit "http://www.yourserver.com/YourWebServicePage.asmx?wsdl"
--ساوي القيمة الناتجة لمتغير
myResult= objSoap.YourWebServiceFunction(Parameter1, Parameter2)الان كل ما عليك هو معالجة المتغيرين الناتجين و استخراج القيم التي تريدها
للطريقة الاولى: المتغير الذي تحتاج الى استخراج القيم منه هو: myXML و للطريقة الثانية هو: myResult
ملاحظة: من اجل استخدام SOAP لا بد ان تكون محمل SOAP TOOL KIT 3.0 من هناSOAP Tool Kit 3.0
ملاحظة: عناصر الادخال لـ ASP.NET Web Service Function حساسة للغاية لنوع المتغير بمعنى اذا كان عنصر الادخال هو نص و ادخلته على انه رقم و لم تغيره او تحوله لنص فانك ستجد خطا ينتج عن هذا
مراجع استخدام و معالجة نصوص XML
http://www.stardeveloper.com/articles/disp...00072801&page=1
و غيرها ... يمكنكم الاستفادة من مواضيع الاخ عبد الله جابر شقلية

