تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] هل basic4android يتعامل مع webservice asmx
#1
السلام عليكم ورحمة الله وبركاته

هل لغة b4a  تمكنني من التواصل مع web.asmx واستخلاص معلومات؟؟؟

آمل ان نعم
وفقكم الله لكل خير.
الرد }}}
تم الشكر بواسطة:
#2
الغريب ان اكثر الشروح في موقع اللغة يستخدمون تحليل الصفحة !!
الا توجد طريقة مثل الدوت نت؟
لان لو اردت تحليل صفحة هناك اسهل منها صفحة عادية جدا واستخدم Request و Response.
على كل حال بانتظاركم.
الرد }}}
تم الشكر بواسطة:
#3
وعليك السلام ورحمة الله وبركاته ، أهلا أخي سعود ، أنا لم أتعامل مع الدوت نت من قبل ، ولكن أعتقد أنني فهمت ماتريده وبصراحه أعجبني موضوع الـ WebService يعني تغنيك من إستخدام تطبيق يعمل كسيرفر لإستقبال وإرسال الأوامر من وإلى برنامجك ، على العموم جماعة الـ B4A قاموا بعمل مكتبة بإسم HttpUtils وهي من ضمن المكتبات الإفتراضيه التي يتم تثبيتها مع برنامج الـ B4A وهي خاصه بالتعامل مع سيرفرات المواقع وخدمات الويب التي ذكرتها في سؤالك وأدائها ليس بالسيئ ولكن يتعبك شوي في كتابة كودها وماترجعه لك هو محتوى الصفحه أو تنسيق الـ XML بالنسبة للويب سيرفس ويجب عليك إستخلاص القيم التي تريدها من نص المحتوى المرجع لك يعني كتحليل كما ذكرت ، لكن في موقع بيئة التطوير B4 قرأت موضوع للنسخه الثانية من مكتبة الـ HttpUtils وعلى حسب مافهمت من شرح أحد أعضاء مطوري البيئة (لغتي الإنجليزي مش ولابد)  أنك لن تحتاج التحليل بعد هذا الإصدار حيث يتم إرجاع القيم فقط وأيضاً إستعمالها صار مختصر وأسهل ، وهذه طريقة الإستخدام في إستدعاء الطرق مع تمرير الباراميترات لها :

PHP كود :
Sub Activity_Create(FirstTime As Boolean)
 
  Dim job1job2job3 As HttpJob
   job1
.Initialize("Job1"Me)

 
  'Send a GET request
   job1.Download2("http://www.basic4ppc.com/print.php", _
      Array As String("first key", "first value :)", "second key", "value 2"))

   '
Send a POST request
   job2
.Initialize("Job2"Me)
 
  job2.PostString("http://www.basic4ppc.com/print.php""first key=first value&key2=value2")

 
  'Send a GET request
   job3.Initialize("Job3", Me)
   job3.Download("http://www.basic4ppc.com/forum/images/categories/android.png")
End Sub

Sub JobDone (Job As HttpJob)
   Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
   If Job.Success = True Then
      Select Job.JobName
         Case "Job1", "Job2"
            '
print the result to the logs
            Log
(Job.GetString)
 
        Case "Job3"
 
           'show the downloaded image
            Activity.SetBackgroundImage(Job.GetBitmap)
      End Select
   Else
      Log("Error: " & Job.ErrorMessage)
      ToastMessageShow("Error: " & Job.ErrorMessage, True)
   End If
   Job.Release
End Sub 
الرد }}}
تم الشكر بواسطة: سعود
#4
بارك الله فيك وجزاك عني كل خير
هذه اللغة مع انها شبيهة لما اعتدت عليه تحتاج تركيز....
الان كيف استقبل مصفوفة نصية  من الخادم ؟؟
مثال
http://saud.somee.com/titles.asmx

والميثود اسمه
get_titles
يقرا بيانات من القاعدة ويعيد الناتج  كـ List(of string)
الرد }}}
تم الشكر بواسطة:
#5
أهلا أخي سعود ، جربت المكتبة الإصدار الثاني ويبدو أنها تقريبا نفس الأولى ، لكن جربت بطرق مختلفه إستدعاء الميثود التي وضعت إسمه في ردك ودائما يرجع لي محتوى صفحة تحتوي على معلومات عنك في مواقع مثل هذا الموقع والفيس بوك ، وأريد أن أستفسر منك بخصوص الـ webservice ماهي كيفية إستدعائك للميثود فيها بالدوت نت ، وهل تستطيع إرجاع قيم الميثود عن طريق المتصفح بكتابة رابط موقعك ثم إسمها ثم تنعرض لك البيانات المرجعه في جسم الصفحه وهل تستخدم رقم منفذ معين في نص رابط موقعك للإتصال بالخدمه وهل الميثود موجوده فعلا في موقعك أم أنت وضعت إسمها كمثال لأطبق الكود عليه ، وإذاكان لايوجد هناك طريقة تقرأ القيمة المرجعه من الميثود مباشرة هل تستطيع تعديل طريقة إرجاع القيم في داخل كود الميثود بحيث تكون القيمه المرجعه من الميثود تبدأ بكلمة مميزه تدل على بدء البينات وكلمة أخرى في نهاية البيانات تكون تدل على نهاية البيانات المرجعه وأيضا وضع مثلا فواصل أو رمز معين يفصل بين عناصر المصفوفه المرجعه وذلك لتسهل عليك وتسرع عملية إستخراج البيانات المرجعه بإستخدام الدوال النصيه مثل الـ SubString والـ Split ، آسف على الإطاله ولكن هذه تساؤلات تساعد في الوصول لحل مناسب لحل المشكله .
الرد }}}
تم الشكر بواسطة: سعود
#6
اخي الكريم بالنسبة للصفحة كتبتها كمثال فقط لم ادرجها  والصفحة التي ظهرت لك هي صفحة خطا http://saud.somee.com/index.htm?aspxerro...itles.asmx



إقتباس :وأريد أن أستفسر منك بخصوص الـ webservice ماهي كيفية إستدعائك للميثود فيها بالدوت نت
بسيطة جدا اول خطوة   الطريقة هنا

وعندما تحدث الـasmx تحدث  ارتباطه بالملف انظر هنا وكما ترى بالقائمة يوجد خيار للتحديث وخيار للتعديل اي تستطيع تعديل الرابط الخاص بملف الـ asmx وهو webservice

الخطوات الاولى هذي مهمة جدا اراحتنا من كم هائل من الاكواد والتحايلات والتحليلات واصبحنا الان نتعامل معها كدالة فقط انظر للتعريف
كود :
Dim ws As New CheckMeReference.CheckMeSoapClient
  MsgBox(ws.HelloUser(TextBox1.Text))
 الامر بسيط جدا بالدوت نت لكن b4a لم اتوصل لحل لكن ساحاول باذن الله من خلال الكود الذي زودتني به لاني مرضت منذ الصباح امس والحمدلله تعافيت الان.
الرد }}}
تم الشكر بواسطة:
#7
الـ .NET يقوم بإنشاء Soap Proxy فور عمل Add Service Reference
وهذا الProxy يحتوي على اكواد الSeriallize والfuction metadata وكل مايخص ارسال الطلبات وارجاع الردود


لكن يبدو انه لايوجد شيئ كهذا في b4a ، اذن عليك :-

1- تغليف البيانات التي تريد ارسالها للويب سرفس بواسطة الXmlSerialization
2- ارسال الطلب + استقبال الرد بواسطة احد المكتبات التي تم ذكرها في الموضوع
3- البيانات التي يتم استقبالها دائما تكون xml ، لذلك عليك بارجاع البيانات الى اصلها وذلك بواسطة XmlDeSerialization
4- بعد عمل الXmlDeSerialization ، ستكون عندك البيانات جاهزة Smile


اتفق معك هذا مشوار لكن هذا البديل حاليا ..
للعلم ان Xamarin تتبع نفس طريقة ال.NET ، فلا يوجد هذا المشوار عندهم Smile
الرد }}}
تم الشكر بواسطة: سعود , سعود
#8
إقتباس :للعلم ان Xamarin تتبع نفس طريقة ال.NET ، فلا يوجد هذا المشوار عندهم 
ياليتهم يدعمون فيجوال بيسك ..يكونو عملو معروفSmile
لان السي شارب ليس مستحيل الفهم لكن يحتاج وقت للتبديل بين وضعية فيجوال بيسك ووضعية شارب (بالمخيخ)
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  برنامج basic4android Benmouha 2 2,125 14-12-19, 01:09 AM
آخر رد: Benmouha
  basic4android & firebase alaa_mokhtar 1 3,226 20-06-18, 06:16 PM
آخر رد: Amir_Alzubidy

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم