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 نظر