Чӣ гуна метавон дархостҳои шабакавиро бо истифода аз китобхонаи 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()) // JSON-ды талдау үшін Gson қолданамыз .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 көмегімен) және басқа асинхронды бағдарламалау кітапханаларымен интеграцияны қолдайды.