Retrofit kitabxanası ilə şəbəkə sorğuları necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
-
Asılılığı əlavə et:
build.gradle(app) faylında.// Retrofit implementation 'com.squareup.retrofit2:retrofit:<latest_version>' implementation 'com.squareup.retrofit2:converter-gson:<latest_version>' // və ya başqa bir konvertor -
API interfeysini yaradın: Hər bir şəbəkə sorğusu üçün metodları müəyyən edin.
interface ApiService { @GET("users/{id}") Call<User> getUser(@Path("id") int userId); @POST("users") Call<User> createUser(@Body User user); }@GET,@POSTvə digər annotasiyalar HTTP metodunun növünü müəyyən edir."users/{id}"- resurs üçün nisbi yol.@Path,@Query,@Body- sorğu parametrləri üçün annotasiyalar.Call<T>- asinxron və ya sinxron sorğular üçün dönüş tipi.
-
Retrofit nümunəsini yaradın: Əsas URL-i konfiqurasiya edin və konvertoru əlavə edin.
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) // JSON-un parse edilməsi üçün Gson istifadə edin .build(); ApiService apiService = retrofit.create(ApiService.class); -
Sorğu icra edin: Asinxron və ya sinxron.
Asinxron (UI axını üçün tövsiyə olunur):
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(); // Uğurlu cavabı emal edin } else { // Xəta cavabını emal edin (məsələn, 404, 500) } } @Override public void onFailure(Call<User> call, Throwable t) { // Şəbəkə xətası və ya istisna emal edin } });Sinxron (UI axınında istifadə etməyin):
try { Response<User> response = apiService.getUser(123).execute(); if (response.isSuccessful()) { User user = response.body(); // Uğurlu cavabı emal edin } else { // Xəta cavabını emal edin } } catch (IOException e) { // Xətanı emal edin } -
Cavabı emal edin:
onResponsemetodlarında və ya uğurluexecutesonrası. Cavabın statusunu yoxlayın (response.isSuccessful()) və məlumatları çıxarın (response.body()). XətalarıonFailurevə yacatchbloklarında idarə edin.
Retrofit həmçinin korutinlərlə inteqrasiyanı dəstəkləyir (retrofit2:retrofit2-kotlin-coroutines-adapter), RxJava (retrofit2:adapter-rxjava) və digər asinxron proqramlaşdırma kitabxanaları ilə.