Ответ
Для сетевых запросов в Android используйте Retrofit + OkHttp. Вот минимальная реализация:
- Добавьте зависимости в build.gradle:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
- Создайте интерфейс API:
interface ApiService {
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: Int): User
}
- Настройте Retrofit:
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build()
val api = retrofit.create(ApiService::class.java)
- Выполните запрос в корутине:
viewModelScope.launch {
try {
val user = api.getUser(1)
// Обработать результат
} catch (e: Exception) {
// Обработать ошибку
}
}
Для продакшена добавьте:
- Таймауты в OkHttpClient
- Логирование через HttpLoggingInterceptor
- Обработку ошибок (например, через sealed class)