Retrofit kutubxonasi yordamida tarmoq so'rovlarini qanday amalga oshirish mumkin?
sobes.tech AI
AIdan javob
-
Bog'lanishni qo'shish:
build.gradle(app) faylida.// Retrofit implementation 'com.squareup.retrofit2:retrofit:<latest_version>' implementation 'com.squareup.retrofit2:converter-gson:<latest_version>' // yoki boshqa konvertor -
API interfeysini yaratish: Har bir tarmoq so'rovi uchun metodlarni aniqlash.
interface ApiService { @GET("users/{id}") Call<User> getUser(@Path("id") int userId); @POST("users") Call<User> createUser(@Body User user); }@GET,@POSTva boshqa anotatsiyalar HTTP metodining turini belgilaydi."users/{id}"- manbaga nisbatan yo'l.@Path,@Query,@Body- so'rov parametrlari uchun anotatsiyalar.Call<T>- asinxron yoki sinxron so'rovlar uchun qaytish turi.
-
Retrofit nusxasini yaratish: Asosiy URL ni sozlash va konvertor qo'shish.
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) // JSON ni tahlil qilish uchun Gson .build(); ApiService apiService = retrofit.create(ApiService.class); -
So'rovni bajarish: Asinxron yoki sinxron.
Asinxron (UI oqimi uchun tavsiya etiladi):
Call<User> call = apiService.getUser(123); call.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) { if (response.isSuccessful()) { User user = response.body(); // Muvaffaqiyatli javobni ishlash } else { // Xato javobni ishlash (masalan, 404, 500) } } @Override public void onFailure(Call<User> call, Throwable t) { // Tarmoq xatosi yoki istisno } });Sinxron (UI oqimida ishlatmang):
try { Response<User> response = apiService.getUser(123).execute(); if (response.isSuccessful()) { User user = response.body(); // Muvaffaqiyatli javobni ishlash } else { // Xato javobni ishlash } } catch (IOException e) { // Xatoni ishlash } -
Javobni ishlash:
onResponsemetodlarida yokiexecutemuvaffaqiyatli bo'lsa. Javob holatini tekshiring (response.isSuccessful()) va ma'lumotlarni oling (response.body()). XatolarnionFailureyokicatchblokida boshqaring.
Retrofit shuningdek, Kotlin korutinlari bilan integratsiya qilish uchun (retrofit2:retrofit2-kotlin-coroutines-adapter), RxJava (retrofit2:adapter-rxjava) va boshqa kutubxonalar bilan qo'llab-quvvatlaydi.