Ответ
- Main Thread: Не выполняй сетевые запросы в основном потоке — используй
Coroutine,RxJavaилиAsyncTask(deprecated) - Разрешения: Добавь
<uses-permission android:name="android.permission.INTERNET"/>вAndroidManifest.xml - Обработка ошибок: Лови исключения (
IOException,SocketTimeoutException) - HTTPS: Используй HTTPS, для HTTP нужна настройка
Network Security Config - Кэширование: Реализуй кэширование ответов для оффлайн-работы
- Отмена запросов: Отменяй запросы при уничтожении
Activity/Fragment(например, черезCoroutineScopeилиDisposable)
Пример с Retrofit + Kotlin:
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build()
interface ApiService {
@GET("users")
suspend fun getUsers(): List<User>
}
// Вызов в Coroutine
lifecycleScope.launch {
try {
val users = retrofit.create(ApiService::class.java).getUsers()
} catch (e: Exception) {
// Обработка ошибки
}
}