PDA

View Full Version : استفاده از web service در android studio



sina.aslpour
دوشنبه 08 تیر 1394, 13:56 عصر
سلام
من یه برنامه ای برای android با C# نوشته ام که با web service ارتباط داره

الآن تازه رفتم سمت java و همون برنامه رو می خوام توی android studio با java بنویسم
حالا نمیدونم چطور web service رو اضافه کنم ، تعریف کنم و ازش استفاده کنم ...



اگر داکیومنتی هم داشتید برای برنامه نویسی android با java ممنون میشم اگه لینکش رو بدید

majid_7
دوشنبه 08 تیر 1394, 19:29 عصر
راجع به HttpClient توی نت سرچ کنید مطالب زیاد برای کار با وب سرویس
البته بهتره از کتابخونه های آماده یی مثل okHTTP یا volley و... غافل نباشید!
موفق باشید

sina.aslpour
سه شنبه 09 تیر 1394, 12:33 عصر
راجع به HttpClient توی نت سرچ کنید مطالب زیاد برای کار با وب سرویس
البته بهتره از کتابخونه های آماده یی مثل okHTTP یا volley و... غافل نباشید!
موفق باشید

خیلی ممنون از شما

فقط ،من وقتی در مورد webservice سرچ می کردم اصلا به کلمه Http Client بر خورد نکردم بیشتر ksoap بود
میشه یه توضیحی بدید؟

یه مورد دیگه من الآن چند تا help پیدا کردم که بیشترشون با ksoap کار می کنن
منم این دستورات رو پیاده کردم و کار میکنه فقط نمیتونم چگونگی کار کردن دستورات ksoap رو خوب بفهمم
یعنی نمیدونم که کدوم کد مربوط به کدوم مرحله کاره و اگه با webservice خودم کار کنم کدوم قسمت رو باید تغییر بدم

اینم لینک: http://karanbalkar.com/2014/03/tutorial-78-using-ksoap2-in-android/

اگه کسی اطلاعاتی راجع به این مورد میدونه میتونه راهنماییم کنه؟!!؟؟؟!

majid_7
چهارشنبه 10 تیر 1394, 11:59 صبح
httpClient نیاز به استفاده از مولتی ترد داره برای خوندن اطلاعات از وب
بهتره از همون کتابخونه هایی که گفتم okHTTP و Volley و Retrofit و.. استفاده کنید!
هم کد نویسی سریعتر داره هم اینکه کدهای بهینه تر از کدهای شما رو استفاده میکنه از نظر استفاده از منابع
کلا نوشتن برنامه ی وب سرویس باهاش که کار خوندن اطلاعات اعم از تصاویر و متن رو ظرف 2 سوت واستون انجام میده!
کد نویسیش هم راحته (خیلی راحت تر از HttpClient) ،
دیگه چی بگم!!! ؟

majid_7
چهارشنبه 10 تیر 1394, 12:01 عصر
آهان یه چیز دیگه
مطمئنی که چیزی پیدا نکردی توی گوگولی دوست داشتنی!!!؟
https://www.google.com/search?q=HttpClient+Example&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=sb

sina.aslpour
چهارشنبه 10 تیر 1394, 13:10 عصر
httpClient نیاز به استفاده از مولتی ترد داره برای خوندن اطلاعات از وب
بهتره از همون کتابخونه هایی که گفتم okHTTP و Volley و Retrofit و.. استفاده کنید!
هم کد نویسی سریعتر داره هم اینکه کدهای بهینه تر از کدهای شما رو استفاده میکنه از نظر استفاده از منابع
کلا نوشتن برنامه ی وب سرویس باهاش که کار خوندن اطلاعات اعم از تصاویر و متن رو ظرف 2 سوت واستون انجام میده!
کد نویسیش هم راحته (خیلی راحت تر از HttpClient) ،
دیگه چی بگم!!! ؟
خب من وقتی service رو تو C# فراخوانی میکردم ورودی های تابع مورد نظر رو به ترتیب داخل پارانتز مینوشتم

ولی چند تا مثالی رو که نگا کردم (+ این لینکی که دادین) از لیست یا پراپرتی استفاده میکنن به این صورت که همه ورودی ها رو یکجا میفرستن

با توجه به اینکه وقتی سرویسی در C# نوشته میشه ورودی هارو تک تک و با ترتیب دریافت میکنه من چطور با java این کار رو انجام بدم؟
تا حالا هر مثالی رو که نگا کردم همه ورودی ها رو یکجا میفرستن و در سمت webservice این هارو از هم جدا میکنن
ولی سرویسی که من باهاش کار میکنم این کار و انجام نمیده...

sina.aslpour
پنج شنبه 11 تیر 1394, 10:28 صبح
کسی نیست که راه حلی ارائه کنه؟

sina.aslpour
شنبه 13 تیر 1394, 11:08 صبح
یعنی هیچ کس راه حلی نداره ؟؟!؟!؟!؟!!!!!

djtrex
شنبه 13 تیر 1394, 13:00 عصر
یعنی هیچ کس راه حلی نداره ؟؟!؟!؟!؟!!!!!

والا من اینجا:
http://barnamenevis.org/showthread.php?499816-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3&p=2233992&viewfull=1#post2233992
و اینجا:
http://barnamenevis.org/showthread.php?500158-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2234676&viewfull=1#post2234676

هم گفتم. مشکلی که شما دارید الان اینه که از wsdl/soap استفاده کردید. خیلی وقت هست به این صورت api ارائه نمیدند خصوصا وبسایت هایی مثل گوگل و ... + سمت موبایل بار پردازشی و پیچیدگی بیشتری داره.
همه اینها باعث میشه کتاب خانه های کمی پیدا کنید یا افرادی که با این روش کار می کنند کمتر هستند تا کمکتون کنند.

کتابخانه هایی هم که دوست عزیز گفتند برای restful هست (البته کلاینت http هستند که برای restful مناسب هستند البته غیر از retrofit که منحصرا برای rest api ها ساخته شده)

sina.aslpour
شنبه 13 تیر 1394, 13:14 عصر
والا من اینجا:
http://barnamenevis.org/showthread.php?499816-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3&p=2233992&viewfull=1#post2233992
و اینجا:
http://barnamenevis.org/showthread.php?500158-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2234676&viewfull=1#post2234676

هم گفتم. مشکلی که شما دارید الان اینه که از wsdl/soap استفاده کردید. خیلی وقت هست به این صورت api ارائه نمیدند خصوصا وبسایت هایی مثل گوگل و ... + سمت موبایل بار پردازشی و پیچیدگی بیشتری داره.
همه اینها باعث میشه کتاب خانه های کمی پیدا کنید یا افرادی که با این روش کار می کنند کمتر هستند تا کمکتون کنند.

کتابخانه هایی هم که دوست عزیز گفتند برای restful هست (البته کلاینت http هستند که برای restful مناسب هستند البته غیر از retrofit که منحصرا برای rest api ها ساخته شده)
اینایی گفتید رو من همه رو امتحان کردم ولی هیچ کدوم (چه restful ، چه ksoap،...)همه این ها ورودی هارو یکجا میفرستند برای وبسرویس
و چون وبسرویس دست خودشونه به راحتی میتونن روش تغییرات بدن و جداسازی داده هارو در سمت وبسرویس انجام بدن
ولی وبسرویسی که من باهاش کار میکنم با C# نوشته شده و پارامتر هارو تک تک و به ترتیب دریافت میکنه
حالا چون در android studio نمیتونیم (همونطور که در visual studio وبسرویس رو add میکردیم) وبسرویس رو add کنیم به توابع داخل وبسرویس هم دسترسی نداریم
من حتی چن تا مثال رو دیدم که اصلا نفهمیدم تابع مورد نظر رو کجا انتخاب میکنن و فقط ورودی هارو به صورت پراپرتی میفرستن
در این روش همه کار هارو بای سمت وبسرویس انجام بدید
ولی من به کد های وبسرویس دسترسی ندارم و فقط ازش میتونم استفاده کنم
بالا تر هم گفتم که من این برنامه رو تو vs نوشتم و کار میکنه
ولی اینجا توی android studio نمیدونم چیکار کنم
سرچ هم نگید که یه هفته کامل دارم سرچ میکنم!!!!!!

djtrex
شنبه 13 تیر 1394, 15:14 عصر
اینایی گفتید رو من همه رو امتحان کردم ولی هیچ کدوم (چه restful ، چه ksoap،...)همه این ها ورودی هارو یکجا میفرستند برای وبسرویس
و چون وبسرویس دست خودشونه به راحتی میتونن روش تغییرات بدن و جداسازی داده هارو در سمت وبسرویس انجام بدن
ولی وبسرویسی که من باهاش کار میکنم با C#‎ نوشته شده و پارامتر هارو تک تک و به ترتیب دریافت میکنه
حالا چون در android studio نمیتونیم (همونطور که در visual studio وبسرویس رو add میکردیم) وبسرویس رو add کنیم به توابع داخل وبسرویس هم دسترسی نداریم
من حتی چن تا مثال رو دیدم که اصلا نفهمیدم تابع مورد نظر رو کجا انتخاب میکنن و فقط ورودی هارو به صورت پراپرتی میفرستن
در این روش همه کار هارو بای سمت وبسرویس انجام بدید
ولی من به کد های وبسرویس دسترسی ندارم و فقط ازش میتونم استفاده کنم
بالا تر هم گفتم که من این برنامه رو تو vs نوشتم و کار میکنه
ولی اینجا توی android studio نمیدونم چیکار کنم
سرچ هم نگید که یه هفته کامل دارم سرچ میکنم!!!!!!

اینکه میگید یک جا میفرستم واقعا متوجه نمیشم. میشه بیشتر توضیح بدید؟ (با کد خیلی بهتره)

اگه از سرویس جایی استفاده می کنید که دست خودتون نیست و اونم wsdl/soap هست اول اینکه اصلا restful نمی تونید کار کنید مگه اینکه سمت سرور یه واسط باشه که اون با soap وصل بشه به وب سرویس اونها نتیجه رو به صورت rest بده به اپ. از جهاتی خوبه اگه تغییر هم بکنه اپتون نیاز نداره تغییر کنه از جهتی هم باید یه واسط بنویسید و درگیری سمت سرور و ...

برای soap این کتابخانه IceSoap که ویکی خوبی داره + gradle داره راحت میتونید توی اندروید استدیو اضافه کنید.
https://github.com/AlexGilleran/IceSoap/wiki

یا nano که داکیومنت خوبی داره:
http://android-arsenal.com/details/1/430

یا jsoap که مثال هم داره همراش:
http://android-arsenal.com/details/1/1365
----
تو اندروید استدیو به این راحتی نیست که شما آدرس wsdl رو بدید بعد براتون کلاس ها و متدهاشو بسازه باید خودتون همه اینکارارو انجام بدید (شاید قبلا کسی یه generator نوشته باشه باید سرچ کنید:) )

djtrex
شنبه 13 تیر 1394, 15:15 عصر
الان سرچ کردم خوشبختانه برای اندروید استدیو و intellij یه پلاگین نوشتن به اسم easyWsdl :
http://easywsdl.com/
https://plugins.jetbrains.com/plugin/7751?pr=

sina.aslpour
شنبه 13 تیر 1394, 16:38 عصر
الان سرچ کردم خوشبختانه برای اندروید استدیو و intellij یه پلاگین نوشتن به اسم easyWsdl :
http://easywsdl.com/
https://plugins.jetbrains.com/plugin/7751?pr=
سپاس فراوان
بالاخره