به نام خدا
در برنامه نویسی اپلیکیشن برای ارتباط با سرور کتابخونه های متعددی وجود دارد ولی برنامه نویس ها طبیعتا اون کتابخانه ای را انتخاب میکنند که از نظر کدنویسی کاربردی تر و بهینه تر باشد.
کتابخونه Android networking هم یه کتابخونه کاربردی و در عین حال بهینه از لحاظ کد نویسیه که در ادامه نمونه ای از کاربردهای آن همراه با مثال آموزش میدیم.
اما قبلش باید چندتا نکته رو عرض کنم.
ما یه درخواست میدیم به سرور و سرور به ما یه پاسخ میده
اما نوع درخواست های ما با هم متفاوته.
خب درخواست ها دو نوع هست post و get
خب حالا get چیه؟
در متد get ما اطلاعات رو بصورت (key,value) (کلید،مقدار) میفرستیم به سرور
و احتمالا توی سرچ های روزانه تون هم دیده باشید که توی همون url (ادرس سایتی) که سرچ میکنیم یه علامت سوال دیده میشه(؟).توی متد get بعد از این علامت ما میتونیم ساختار(کلید،مقدار) رو که ارسال کردیم ببینیم.
به عنوان مثال به این شکل خواهد بود:
?username =ali |
• که اینجا username کلید هست و ali مقداره
و به صورت زیر بهش دسترسی خواهیم داشت:
https://javapro.ir/user.php?username=ali |
نمونه کد(1)
• متد get برای ارسال اطلاعات محرمانه مناسب نخواهد بود چون توی ادرس بار مرورگر مثل نمونه کد(1) اطلاعات دیده میشن.
اما بریم سراغ متد post
توی این نوع درخواست اطلاعات به صورت پکیج از سمت کلاینت که ما باشیم ارسال میشه به سرور و مثل get ما اطلاعات رو نمیبینیم پس بدیهی است که برای اطلاعات محرمانه گزینه بهتری باشه.
پاسخ ها از سمت سرور هم به صورت json به ما ارسال میشه که در ادامه جلسات توضیح میدیم خدمتتون json چیه.
خب بریم سراغ نمونه کد های استفاده از android networking
AndroidNetworking.get("https://javapro.ir/getAllUsers/{pageNumber}") .addPathParameter("pageNumber", "0") .addQueryParameter(" limit ", "6") .addHeaders("token", "0000") .setTag("get") .setPriority(Priority.HIGH) .build() .getAsJSONArray(new JSONArrayRequestListener() { @Override public void onResponse(JSONArray response) { } @Override public void onError(ANError error) { } }); |
نمونه کد(2)
توضیحات:
public void onResponse(JSONArray response) { } |
• اینجا سرور به درخواستی که دادیم پاسخ میده
public void onError(ANError error) { } |
• اینجا اگه اروری از سرور بیاد رو هندل میکنیم
خب همونطور که در نمونه کد(2) میبینید ما یه درخواست از نوع get دادیم به سرور،یک سری پارامتر رو هم همراه با درخواستمون ارسال کردیم و گفتیم پاسخی که از سرور میاد به صورت ارایه json باشه.
یکی از مزیت های android networking اینه که پاسخ میتونه به صورت دلخواه باشه.
دلخواه باشه یعنی چی؟
یعنی مثلا توی همین اینستاگرام کاربر ما چندتا ویژگی مثل اسم،ایمیل و ... داره
با استفاده از کتابخانه android networking ما میتونیم درخواست ها مبتنی بر همین ویژگی های کاربر باشه فعلا در همین حد باشه وقتی کد نویسی برنامه هم شروع شد نمونه هاشو میبینیم.
خب بریم یه نمونه کد دیگه این بار از نوع post ببینیم:
AndroidNetworking.post("https://javapro.ir/signup") .addBodyParameter("firstname", "ali") .addBodyParameter("lastname", "alavi") .setTag("test") .setPriority(Priority.MEDIUM) .build() .getAsJSONObject(new JSONObjectRequestListener() { @Override public void onResponse(JSONObject response) { } @Override public void onError(ANError error) { } }); |
نمونه کد(3)
• درخواست بالا همانطور که میبینید از نوع post هست و ما باهاش اسم کاربر رو هم ارسال کردیم.
• علاوه برا اسم ما میتونیم یک شی جاوا،یا فایل و یا هر چیز دیگه ای رو هم با درخواستمون بفرستیم.
به این صورت که به جای اسم کاربر اینگونه عمل میکنیم :
addBodyParameter(file) |
• این فایل از هر نوعی میتونه باشه
از android networking میتونیم برای دانلود فایل از سرور و همچنین اپلود فایل توی سرور هم استفاده کنیم که نمونه کد هاش مشابه زیر هست:
نمونه کد دانلود از سرور:
AndroidNetworking.download(url,dirPath,fileName) .setTag("download") .setPriority(Priority.MEDIUM) .build() .setDownloadProgressListener(new DownloadProgressListener() { @Override public void onProgress(long bytesDownloaded, long totalBytes) { } }) .startDownload(new DownloadListener() { @Override public void onDownloadComplete() { } @Override public void onError(ANError error) { } }); |
نمونه کد(4)
توضیحات
public void onProgress(long bytesDownloaded, long totalBytes) { } |
• اینجا وقتی دانلود داره انجام میشه رو میتونیم مدیریت کنیم.
public void onDownloadComplete() { } |
• اینجا وقتی دانلود تموم میشه
public void onError(ANError error) { } |
• اینجا اگر به ارور بخوریم رو هندل میکنیم
نمونه کد آپلود توی سرور:
AndroidNetworking.upload(url) .addMultipartFile("image",file) .addMultipartParameter("key","value") .setTag("uploadTest") .setPriority(Priority.HIGH) .build() .setUploadProgressListener(new UploadProgressListener() { @Override public void onProgress(long bytesUploaded, long totalBytes) { } }) .getAsJSONObject(new JSONObjectRequestListener() { @Override public void onResponse(JSONObject response) { } @Override public void onError(ANError error) { } }); |
نمونه کد(5)
توضیحات
public void onProgress(long bytesUploaded, long totalBytes) { } |
• مدیریت در حین اپلود شدن
public void onResponse(JSONObject response) { } |
• مدیریت پاسخ دریافتی از سرور
public void onError(ANError error) { } |
• هندل کردن ارور
این تمام چیزی بود که شما باید از android networking میدانستید
این جلسه هم تموم شد.
با ما همراه باشید...
پیروز و موفق باشید
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |