آموزش اندروید

آموزش اتصال اندروید به وب سرویس Rest بوسیله volley

Volley یک networking library (کتابخانه ای برای ارتباط با شبکه ) در اندروید می باشد. استفاده از این کتابخانه که توسط گوگل توسعه یافته است کار را برای برنامه نویسان اندروید بسیار راحت می کند.

با استفاده از آن دیگر خبری از HttpClient و امثال آن برای ارتباط با سرور و گرفتن اطلاعات نیست، دیگری نیازی نیست اطلاعات دریافت شده از سرور را به فرمت قابل استفاده یا همان String تبدیل کرد.

استفاده از Volley علاوه بر اینکه راحتر می باشد، سرعیتر از روش های قبلی و معمول است.

برخی از ویژگی های Volley از این قبیل می باشند :

ایجاد صف درخواست (Request Queuing)
داشتن کنترل روی حافظه و بافرینگ (Cache)
توانایی لغو درخواست ها در صف (Cancelling Request)
برای استفاده از این کتابخانه بایستی در ابتدا فایل .jar مرتبط با آن را در پوشه libs پروژه خود وارد کنید و آن را به برنامه معرفی کنید (فایل کتابخانه در انتهای آموزش قرار داده می شود. همچنین، IDE پیش فرض ما اندروید استودیو است).

برای معرفی فایل های .jar به پروژه، وارد build.gradle مربوط به app شوید و در قسمت dependencies، کد زیر را وارد کنید و سپس پروژه را sync نمایید:

در مرحله بعد ما به یک Package دیگر نیازی داریم. یک Package با نام utils ایجاد کرده و سپس داخل آن کلاس LruBitmapCache را تعریف می کنیم.

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

 

پس از اضافه کردن این کلاس، کار ما با این Package به اتمام می رسد.

کدهای زیر را به کلاس G خود اضافه می کنیم. توابع این کلاس در ایجاد صف درخواست، اضافه کردن درخواست به صف، دسترسی به درخواست های قرار گرفته در صف، کنسل کردن درخواست های موجود در صف و از این قبیل موارد می باشد (کد زیر، کد کلاس G به طور کامل است. کدهای مشترک را پاک کنید).

 

حالا سراغ ایجاد درخواست و گرفتن اطلاعات از سرور می رویم. در این مثال قرار است ما درخواست JsonArray به سرور داشته باشیم و اطلاعات مورد نظر را دریافت کنیم. حال در MainActivity به ترتیب کدهای زیر را وارد می کنیم.

همانطور که گفته شد ما توانایی Cancel کردن درخواست هایمان را داریم. این یک متغییر از نوع متن می باشد که با استفاده از آن می توانیم درخواست را Cancel کرده و از انجام آن صرف نظر کنیم.

در ادامه توضیحات تکمیلی آورده می شود.

 

حال به توضیح کد بالا می پردازیم :

در ابتدا ما یک شی از کلاس JsonArrayRequest را ایجاد می کنیم. چون قرار است ما آرایه دریافت کنیم بایستی از این کلاس یک شی ایجاد کنیم. اگر اطلاعات ما Object بود از JsonObjectRequest استفاده می کنیم.

پارامترهایی که بایستی در ورودی این کلاس وارد کرد شامل موارد زیر می باشد :

url : در واقع این همان آدرس صفحه مورد نظر در سرور می باشد که ما درخواست خود را به این صفحه ارسال می کنیم و پاسخ مورد نظر را نیز دریافت خواهیم کرد.

Listener : پارامتر بعدی یک Listener می باشد. این قسمت در واقع همان پاسخ ما از سرور می باشد. در واقع یک تابع می باشد که با استفاده از آن ما به داده های دریافتی از سرور می توانیم دسترسی داشته باشیم.

در این مثال ما آرایه دریافتی را به Object تبدیل کرده و آن را در خروجی نمایش داده ایم.

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

در نهایت بایستی درخواست را به صف درخواست ها اضافه کنیم.

با این کار درخواست ما در صف قرار می گیرد. همانطور که مشاهده می کنید متغییر تعریف شده در بالا به عنوان پارامتر وارد گردیده است. در واقع ما این متغیر را به عنوان نشانه به درخواست در صف وارد می کنیم تا در صورت نیاز بتوانیم به آن دسترسی داشته باشیم.

تا به اینجا ما درخواست جدید را تعریف کرده و آن را به صف درخواست ها اضافه کرده ایم و همچنین پاسخ دریافتی از سرور را نیز در خروجی چاپ کرده ایم.

لغو درخواست :

شاید ما درخواست های زیادی در صف داشته باشیم و یا شاید بخواهیم از اجرا شدن یک درخواست جلوگیری کنیم و از این قبیل موارد. با استفاده از کد زیر می توانیم به صف درخواست ها دسترسی پیدا کرده و با استفاده از شناسه هر درخواست، درخواست مورد نظر را cancel کنیم.

ارسال پارامتر به سرور :

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

در زیر کد کامل آورده شده :

 

استفاده از قابلیت Cache :

هنگامی که شما برای بار اول اطلاعاتی را از یک آدرس از سرور دریافت می کنید، می توانید برای دفعات بعد بدون ارتباط با سرور اطلاعات را دریافت کنید. این قابلیت caching نامیده می شود.

در این قسمت ابتدا آدرس سرور مورد نظر چک می شود که قبلاٌ اطلاعاتی از این آدرس گرفته شده است یا نه، در صورتی که محتوای Cache خالی نباشد، اطلاعات درخواستی از حافظه Cache گرفته می شود و در اختیار کاربر قرار می گیرد.

در صورتی که حافظه Cache خالی باشد، اطلاعات از سرور دریافت می گردد و برای دفعات بعد از Cache دریافت می گردد.

دانلود کتابخانه Volley اندروید

منبع : androidhive

10 Comments

  1. امین دی ۹, ۱۳۹۴ Reply
    • موبایل پروگرامAuthor دی ۹, ۱۳۹۴ Reply
  2. 404 اسفند ۲۹, ۱۳۹۴ Reply
  3. جبار خرداد ۱۶, ۱۳۹۵ Reply
  4. موبایل پروگرامAuthor خرداد ۱۹, ۱۳۹۵ Reply
  5. A تیر ۲۰, ۱۳۹۵ Reply
    • موبایل پروگرامAuthor تیر ۲۰, ۱۳۹۵ Reply
  6. A تیر ۲۰, ۱۳۹۵ Reply
  7. حسین آذر ۱, ۱۳۹۵ Reply

دیدگاه خود را منتشر کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *