როგორ შევასრულოთ ქსელური მოთხოვნები Retrofit ბიბლიოთეკის გამოყენებით?
sobes.tech AI
პასუხი AI-სგან
-
დამატეთ დამოკიდებულება:
build.gradle(app) ფაილში:// Retrofit implementation 'com.squareup.retrofit2:retrofit:<latest_version>' implementation 'com.squareup.retrofit2:converter-gson:<latest_version>' // ან სხვა კონვერტერი -
შექმენით API ინტერფეისი: განსაზღვრეთ მეთოდები თითოეული ქსელური მოთხოვნისთვის.
interface ApiService { @GET("users/{id}") Call<User> getUser(@Path("id") int userId); @POST("users") Call<User> createUser(@Body User user); }@GET,@POSTდა სხვა ანოტაციები განსაზღვრავენ HTTP მეთოდის ტიპს."users/{id}"- რელატიული გზა რესურსისკენ.@Path,@Query,@Body- ანოტაციები მოთხოვნის პარამეტრებისთვის.Call<T>- ტიპი, რომელიც აბრუნებს ასინქრონულ ან სინქრონულ მოთხოვნას.
-
შექმენით Retrofit-ის მაგალითი: დააყენეთ ძირითადი URL და დაამატეთ კონვერტერი.
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) // ვიყენებთ Gson-ს JSON-ის ანალიზისთვის .build(); ApiService apiService = retrofit.create(ApiService.class); -
გაგზავნეთ მოთხოვნა: ასინქრონულად ან სინქრონულად.
ასინქრონულად (შეფერება UI ნაკადს):
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(); // წარმატებული პასუხის დამუშავება } else { // შეცდომის დამუშავება (მაგ. 404, 500) } } @Override public void onFailure(Call<User> call, Throwable t) { // ქსელის შეცდომა ან გამონაკლისი } });სინქრონულად (არ გამოიყენოთ UI ნაკადში):
try { Response<User> response = apiService.getUser(123).execute(); if (response.isSuccessful()) { User user = response.body(); // წარმატებული პასუხის დამუშავება } else { // შეცდომის დამუშავება } } catch (IOException e) { // შეცდომის დამუშავება } -
პასუხის დამუშავება:
onResponseანexecute-ის წარმატების შემდეგ. შემოწმეთ პასუხის სტატუსი (response.isSuccessful()) და მიიღეთ მონაცემები (response.body()). შეცდომები დამუშავეთonFailure-ში ანcatch-ში სინქრონული მოთხოვნის დროს.
Retrofit ასევე მხარს უჭერს კორუტინებთან ინტეგრაციას (retrofit2:retrofit2-kotlin-coroutines-adapter), RxJava-ს (retrofit2:adapter-rxjava) და სხვა ბიბლიოთეკებთან, რომლებიც უზრუნველყოფენ ასინქრონულ პროგრამირებას.