Как сделать сетевой запрос с помощью Retrofit

«Как сделать сетевой запрос с помощью Retrofit» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для сетевых запросов с Retrofit нужно:

  1. Добавить зависимость в build.gradle:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
  1. Создать интерфейс API:
interface ApiService {
    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: Int): User
}
  1. Создать Retrofit клиент:
val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build()

val api = retrofit.create(ApiService::class.java)
  1. Выполнить запрос (в CoroutineScope):
try {
    val user = api.getUser(123)
    // Обработка результата
} catch (e: Exception) {
    // Обработка ошибки
}

Основные моменты:

  • Используйте suspend функции для корутин
  • Добавьте обработку ошибок
  • Указывайте правильный baseUrl
  • Для разных форматов данных используйте соответствующие ConverterFactory