menusearch
javapro.ir

جلسه چهارم: کار با کتابخانه Android networking

جستجو
چهارشنبه ۵ آبان ۱۴۰۰ | ۲۰:۵۶:۱۴
۱۳۹۸/۱۱/۱۵ سه شنبه
(5)
(0)
جلسه چهارم: کار با کتابخانه Android networking
جلسه چهارم: کار با کتابخانه Android networking

اموزش پروژه محور ساخت اینستاگرام با اندروید

 

 

به نام خدا

 

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


کتابخونه 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 شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

 

 

کانال تلگرام آموزش جاوا

 

 

دانلود رایگان کتاب اموزش زبان برنامه نویسی جاوا

لینک دانلود کتاب

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا
عضو کانال تلگرام ما شوید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
گفتگو را شروع کنید
رزو مشاوره و تدریس خصوصی برنامه نویسی و سفارش انواع پروژه‌‌‌‌های برنامه نویسی