Как сделать сетевой запрос в проекте с нуля

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

Ответ

Для сетевых запросов в Android используйте Retrofit + OkHttp. Вот минимальная реализация:

  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. Выполните запрос в корутине:
viewModelScope.launch {
    try {
        val user = api.getUser(1)
        // Обработать результат
    } catch (e: Exception) {
        // Обработать ошибку
    }
}

Для продакшена добавьте:

  • Таймауты в OkHttpClient
  • Логирование через HttpLoggingInterceptor
  • Обработку ошибок (например, через sealed class)