رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

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


Gray Mind

دوره آموزشی رتروفیت پیشرفته برای کار با API (قسمت چهارم اضافه شد)

پست های پیشنهاد شده

Gray Mind    911

مدیر بخش

با سلام دوستان

با دوره آموزشی رتروفیت پیشرفته در خدمت شما هستم

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

یکی از مهمترین قابلیت های این کتابخونه اینه که شما یه کلاس مدل میسازید و رتروفیت به صورت خودکار جیسون هایی که از سرور گرفته رو Parse میکنه و به صورت آبجکت بهتون تحویل میده و این خودش میتونه کلی از کدنویسی هاتون رو کم کنه

شما تو این دوره یاد میگیرید که چطور با یه API که آماده هستش کار کنید . مقادیر بهش ارسال کنید و جواب رو بگیرید، فایل آپلود کنید، یاد میگیریم چطور رتروفیت رو با  RxJava  مخلوط کنیم تا سرعت بیشتر بشه و به صورت مولتی ترد به سادگی کار کنیم .

نکته ی مهم : تو این آموزش هیچگونه کدنویسی سمت سروری صورت نمیگیره و فرض رو بر این میذاریم که قبلا نوشته شده . 

 

عنوان هر قسمت به ترتیب :

1- آموزش متد گت

2- آموزش متد پست

3- آموزش آپلود عکس

4- آموزش ترکیب رتروفیت و RxJava

 

---------------------------------------------------

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

@Path : برای جایگذاری مقدار در آدرس ای پی آی

API : http://api.com/user/{username}

Retrofit : @Path("username") String UserName

 

@Query : برای ارسال مقادیر همراه متد گت

API Sample Required : http://api.com/user/feed?123

Retrofit : @Query("feed") int FeedID

 

@Field : برای ارسال مقادیر همراه متد پست

 

@Map : برای ارسال مقادیر مانند هش مپ در اندروید

 

@Part : برای ارسال فایل و مقادیر همراه فایل برای آپلود در سرور

 

@Header : برای ارسال هدر به سرور (اگر نیاز بود)

API Required Header : DeviceID , UserAgent

there is a two type of declaration : 

Type 1 : StaticDeclaration

Single Header :
@Headers("deviceid: 132564")
@GET("endpoint")
Call<> ....

Multi Header :
@Headers({
"deviceid: 132564",
"useragent: android-retrofitsample
})
@GET("endpoint")
Call<> ....

Type 2 : DynamicDeclaration

@GET("endpoint")
Call<ResponseBody> sampleRequst(@Header("useragent") String UserAgent, @Header("deviceid") String DeviceID);

---------------------------------------------------

 

آموزش ها به ترتیب در چند روز آینده اضافه میشه ...

اگر آموزش دیگه ای به ذهنم رسید به لیست اضافه میکنم

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

 

موفق باشید :heart:

  • پسندیدن 3
  • تشکر 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
majerajoo    161

کاربر رو به رشد

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

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
amir54    138

کاربر رو به رشد

سلام مرسی از آموزش خوبتون واقعا عالیه:53:

یه سوال کوچیک داشتم گفتم شاید سوال دوستان هم باشه

اگه داخل جیسون دریافت مون یک جیسون دیگه بود چیکار کنیم دستی پارس ش کنیم که فکر کنم زیاد جالب نیست یه آموزش هایی انگلیسی دیدم ولی درست متوجه  نشدم که ایشون  مثل شما می اومد به جای یکی چند تا CategoryModel  درست کرد و به راحتی تبدیل کرد

اگه میشه بهمون بگید چطوری میشه

[
	{
		"name":"test",
		"now":"exit"
	}

	{
		"name":"test2",
		"now":"[{"name":"test3","now":"Toast"}]"
	}
]

مرسی از شما:53:

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Gray Mind    911

مدیر بخش

در ۱ ساعت قبل، amir54 گفته است :

سلام مرسی از آموزش خوبتون واقعا عالیه:53:

یه سوال کوچیک داشتم گفتم شاید سوال دوستان هم باشه

اگه داخل جیسون دریافت مون یک جیسون دیگه بود چیکار کنیم دستی پارس ش کنیم که فکر کنم زیاد جالب نیست یه آموزش هایی انگلیسی دیدم ولی درست متوجه  نشدم که ایشون  مثل شما می اومد به جای یکی چند تا CategoryModel  درست کرد و به راحتی تبدیل کرد

اگه میشه بهمون بگید چطوری میشه


[
	{
		"name":"test",
		"now":"exit"
	}

	{
		"name":"test2",
		"now":"[{"name":"test3","now":"Toast"}]"
	}
]

مرسی از شما:53:

نه نیازی به پارس کردن دستی نیست

همونطور که قبلا هم گفتم این کتابخونه هرچقدر هم تو در تو باشه کاملا خودکار پارس میکنه

خوب شما کافیه یه مدل دیگه درست کنید دقیقا مثل CategoryModel و به نیاز چندتا متغیر که داخل جیسون آبجکت های لیست دوم هست تعریف میکنی SerializedName هارو ست میکنید

و در آخر هم توی مدل اصلی میاید و یه متغیر از نوع اون کلاس مدل دوم تعریف میکنید و SerializedName رو برابر با اسم اون JsonArray میدین مثال زیر رو ببینید :

ما این جیسون رو داریم :

{
"site":"answercenter"
"users:[
	{
		"id":1,
		"username":"Gray Mind",
		"name":"Benyamin"
	},
	{
		"id":2,
		"username":"
	}
	],
"admin":{
	"username":"izadi",
	"name":"Mehdi Izadi"
	}


}

 

خوب حالا ما سه تا کلاس مدل لازم داریم‌:

SiteModel

public class SiteModel {
    @SerializedName("site")
    @Expose
    private String site;

    @SerializedName("users")
    @Expose
    private ArrayList<UsersModel> users;

	@SerializedName("admin")
    @Expose
    private AdminModel admin;

    //getter setters
}

UsersModel :

public class UsersModel{
    @SerializedName("id")
    @Expose
    private int id;

    @SerializedName("username")
    @Expose
    private String username;

  @SerializedName("name")
    @Expose
    private String name;

    //getter setters
}

و در آخر AdminModel :

public class AdminModel{
    @SerializedName("username")
    @Expose
    private String username;

	@SerializedName("name")
    @Expose
    private String name;

    //getter setters
}

و درخواستمون هم همون مثل قبل هستش :

@GET("EndPoint")
Call<SiteModel> getSite();

به همین راحتی همه شون رو به صورت آبجکت برمیگردونه که البته یادتون نره getter و setter هارو هم بذارید همون getId و ...

 

موفق باشید

  • تشکر 2

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
amir mahdizadeh    108

کاربر رو به رشد

سلام وقت بخیر

ببخشید که این پست رو بالا آوردم

میخواستم اگه لطف کنید فایل php آپلود عکس رو بهم بدید

(من توی php یکم  تازه کار هستم و میخوام الگو بگیرم ازتون)

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...