PDA

View Full Version : اتصال به سرور در اندروید



abrenoor
دوشنبه 07 تیر 1395, 16:18 عصر
سلام،
برای یادگیری اتصال به سرور در اندروید از آموزشهای ویدیویی سایت اسفندونه
http://www.esfandune.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%85%D8%AD%D9%88%D8%B1-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1/
استفاده نمودم که در این راستا به سوالات کلیدی برخورده ام!
1. آیا در این آموزشها از وب سرویس خاصی جهت اتصال استفاده شده یا خیر؟ صرف استفاده از عبارات get و post می تواند بیانگر استفاده از وب سرویس باشد؟
(طبق جستجوها به این نتیجه دست یافتم که اتصال برنامه به سرور اینترنتی می تواند مستقیم یا با استفاده از وب سرویس باشد که استفاده از وب سرویس مزایای عمده تری را مشتمل می گشت و بنا را بر استفاده بر آن گذاشتم.)
2. بخش هایی از کدهای مطرح شده شامل عباراتی منسوخ شده بود که مرا به فکر واداشت تا مبادا اگر همچنان از این روش استفاده کنم کدهایی قابل نفوذ و غیر قابل اطمینان تحویل خواهم داد که حتی ممکن است در نسخه های جدید به اجرا نرسد. با کدهای منسوخ چه کنم؟
پیشاپیش ممنونم

vahid-p
سه شنبه 08 تیر 1395, 09:22 صبح
وب سرویس یعنی همون خدمات تحت وب. شما همین که به یک سروری در وب متصل میشید، یعنی دارید از وب سرویس استفاده میکنید.
معمولا از بسته های HTTP یا HTTPS برای این ارتباط استفاده میشه.

در نتیجه خودتون رو درگیر این تعاریف نکنید.

اما چیزی که وجود داره فرمتی که وب سرویس ها استفاده میکنند. شما میتونید خودتون فرمتی رو بذارید که برنامتون و وب سرورتون رو بر اون مبنا کار میکنند.
مثلا من برای لاگین کردم، میتونم body بسته HTTP رو به این صورت بفرستم:

u=vahid&p=123456
و جوابش رو از سرور به این صورت بگیرم:

OK

که فرمت فوق همچین مندراوردی هم نیست و فرم ها به این صورت اطلاعاتشون رو ارسال می کنند. اما میتونم از فرمت json استفاده کنم، مثلا:


{
"user":{
"u":"vahid",
"p":"123456"
}
}

یا میتونم از فرمت XML استفاده کنم:
<user> <u>vahid</u>
<p>123456</p>
</user>

خب همونطور که میبینید شما بین کلاینت و سرور یکی از فرمت ها رو انتخاب میکنید و قرارداد کردید که من این فرمت رو میشناسم و بر مبنای همون اطلاعات رو استخراج میکنم.

خب پس این شد وب سرویس که در اصل یک خدماتی بین سرور و کلاینت برقراره از طریق HTTP یا ...

اما برخی فرمت های کاملتری به جز فرمت فایل انتقال اطلاعات وجود داره. برای هر عمل میتونی آدرس های اینچنینی در سرورتون داشته باشی:
MyApp/Login
MyApp/Cpanel
MyApp/NewAccount
و...
که کار بین کلاینت و سرور رو ساده میکنه و یکی از کاربردی ترین و معروفترین ها RESTful WebServices است (آموزش (https://www.tutorialspoint.com/restful/))

برای سادگی کتابخانه هایی هم وجود داره.

godofphp
سه شنبه 08 تیر 1395, 15:19 عصر
برای اتصال به سرور در اندروید باید از volley استفاده کنید یعنی بهترین و مفید ترین راه همینه هر راهی هم که برید آخر سر برمیگردید سر همین کتابخانه
راه های دیگه مثل استفاده از httprequest و امثالهم منسوخ شده هستند !

شما باید api سمت سرور را خودت برنامه نویسی کنی . با فرمت json تحویل بدی و همچنین سمت کلاینت اندروید با استفاده از کتابخانه ی قدرتمند والی از اونها استفاده کنی
برای اطلاعات بیشتر مقاله ی زیر رو بخونید
لینک مقاله (http://samenta.ir/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%DB%8C-volley-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/)

javadaskari
سه شنبه 08 تیر 1395, 16:22 عصر
برای اتصال به سرور در اندروید باید از volley استفاده کنید یعنی بهترین و مفید ترین راه همینه هر راهی هم که برید آخر سر برمیگردید سر همین کتابخانه
راه های دیگه مثل استفاده از httprequest و امثالهم منسوخ شده هستند !

شما باید api سمت سرور را خودت برنامه نویسی کنی . با فرمت json تحویل بدی و همچنین سمت کلاینت اندروید با استفاده از کتابخانه ی قدرتمند والی از اونها استفاده کنی
برای اطلاعات بیشتر مقاله ی زیر رو بخونید
لینک مقاله (http://samenta.ir/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%DB%8C-volley-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/)

کتابخانه volley از اندروید 5 به بعد عرضه شده و اگه بخوای تو ورژنهای قبلی استفاده کنی ، کتابخانه هایی وجود دارند ولی من توصیه نمیکنم چون خودم استفاده کردم ولی بعد چند هفته بی دلیل کار نکرد و مجبور شدم برگردم به روش های قبلی!

godofphp
چهارشنبه 09 تیر 1395, 20:33 عصر
کتابخانه volley از اندروید 5 به بعد عرضه شده و اگه بخوای تو ورژنهای قبلی استفاده کنی ، کتابخانه هایی وجود دارند ولی من توصیه نمیکنم چون خودم استفاده کردم ولی بعد چند هفته بی دلیل کار نکرد و مجبور شدم برگردم به روش های قبلی!
هیچ ربطی نداره که volley کی عرضه شده ! تا جایی که من کار کردم و میدونم از اندروید 8 به بالا در تمامی نسخه های اندروید کتابخانه ی volley به درستی کار میکنه

abrenoor
پنج شنبه 10 تیر 1395, 14:52 عصر
سلام و بسیار ممنون از راهنمایی های گره گشایتان.
پس درنهایت کتابخانه volley را پیشنهاد می نمایید؟؟؟:متفکر: