С какими сетевыми протоколами работал

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

Ответ

HTTP/HTTPS - для REST API, WebSocket - для real-time коммуникаций, TCP/UDP - для низкоуровневых задач.

Пример HTTP с Retrofit:

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

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .build()
val service = retrofit.create(ApiService::class.java)

WebSocket с OkHttp:

val client = OkHttpClient()
val request = Request.Builder().url("ws://echo.websocket.org").build()
val listener = object : WebSocketListener() {
    override fun onMessage(webSocket: WebSocket, text: String) {
        // Обработка сообщения
    }
}
client.newWebSocket(request, listener)

Дополнительно: MQTT для IoT, gRPC для бинарной коммуникации.