Middle
Retrofit kütüphanesi kullanarak ağ istekleri nasıl yapılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Bağımlılığı ekle:
build.gradle(app) dosyasında.// Retrofit implementation 'com.squareup.retrofit2:retrofit:<latest_version>' implementation 'com.squareup.retrofit2:converter-gson:<latest_version>' // veya başka bir dönüştürücü -
API arayüzü oluştur: Her ağ isteği için metodlar tanımla.
interface ApiService { @GET("users/{id}") Call<User> getUser(@Path("id") int userId); @POST("users") Call<User> createUser(@Body User user); }@GET,@POSTve diğer anotasyonlar HTTP metodunu belirler."users/{id}"- kaynağa göreceli yol.@Path,@Query,@Body- istek parametreleri için anotasyonlar.Call<T>- asenkron veya senkron istekler için dönüş tipi.
-
Retrofit örneği oluştur: Temel URL'yi ayarla ve dönüştürücü ekle.
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) // JSON parse etmek için Gson kullanılır .build(); ApiService apiService = retrofit.create(ApiService.class); -
İstek yap: Asenkron veya senkron.
Asenkron (UI akışı için önerilir):
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(); // Başarılı yanıtı işle } else { // Hata yanıtını işle (örneğin, 404, 500) } } @Override public void onFailure(Call<User> call, Throwable t) { // Ağ hatası veya istisna işle } });Senkron (UI akışında kullanma):
try { Response<User> response = apiService.getUser(123).execute(); if (response.isSuccessful()) { User user = response.body(); // Başarılı yanıtı işle } else { // Hata yanıtını işle } } catch (IOException e) { // Hata işle } -
Yanıtı işle:
onResponseiçinde veyaexecutesonrası. Yanıtın durumunu kontrol et (response.isSuccessful()) ve veriyi al (response.body()). HatalarıonFailureveyacatchbloğunda yönet.
Retrofit ayrıca Kotlin coroutines (retrofit2:retrofit2-kotlin-coroutines-adapter), RxJava (retrofit2:adapter-rxjava) ve diğer asenkron programlama kütüphaneleri ile entegrasyonu destekler.