Как сделать HTTP запрос в Kotlin?
Всем привет! Возникла необходимость выполнить простой HTTP GET запрос в проекте на Kotlin (JVM). Я новичок в языке, поэтому хочу понять, какой стандартный и рекомендуемый способ сделать это в 2024 году.
Я пробовал использовать класс HttpURLConnection из Java, но код получается очень громоздким и неудобным для чтения. Вот пример того, что я написал:
import java.net.HttpURLConnection
import java.net.URL
fun main() {
val url = URL("https://jsonplaceholder.typicode.com/posts/1")
val connection = url.openConnection() as HttpURLConnection
connection.requestMethod = "GET"
connection.connectTimeout = 5000
connection.readTimeout = 5000
val responseCode = connection.responseCode
println("Response Code: $responseCode")
val body = connection.inputStream.bufferedReader().readText()
println(body)
connection.disconnect()
}Это работает, но я слышал, что в Kotlin есть более элегантные решения, такие как khttp, Fuel или ktor-client. Однако я не хочу подключать тяжелые библиотеки ради одного запроса.
Вопрос: Какой подход вы используете для простых HTTP запросов в Kotlin? Есть ли способ сделать это лаконично без внешних зависимостей, используя только стандартную библиотеку (например, через java.net.URL с extension функциями)? Или лучше всё-таки добавить легковесную библиотеку? Буду благодарен за пример кода и рекомендации по обработке ошибок (timeout, IOException).
Ожидаю получить JSON ответ от сервера и корректно обработать возможные исключения.