Sobes.tech
Назад к вопросам
Junior — Middle
77

Каким образом реализовать асинхронный HTTP-запрос с использованием Retrofit и корутин в проекте Android?

Ответ от нейросети

sobes.tech AI

Для реализации асинхронного HTTP-запроса с Retrofit и корутин в Android нужно:

  1. Добавить в проект зависимости Retrofit и Kotlin Coroutines.
  2. Определить интерфейс API с функцией, возвращающей Deferred или suspend функцию.
  3. Вызвать эту функцию из корутины, используя suspend.

Пример интерфейса API с suspend функцией:

interface ApiService {
    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: String): User
}

Пример вызова из ViewModel или другой корутины:

viewModelScope.launch {
    try {
        val user = apiService.getUser("123")
        // обработка полученного пользователя
    } catch (e: Exception) {
        // обработка ошибки
    }
}

Таким образом, Retrofit интегрируется с корутинами через suspend функции, что упрощает асинхронный код и делает его более читаемым.