Как сделать запрос к внешнему api из kotlin?

Пользователь

от bart , в категории: Другие , год назад

Как сделать запрос к внешнему api из kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clifford , год назад

@bart 

Для выполнения запроса к внешнему API из Kotlin можно использовать библиотеку OkHttp.


Вот пример кода, который использует OkHttp для выполнения GET-запроса к внешнему API:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
val client = OkHttpClient()

val request = Request.Builder()
    .url("https://api.example.com/data")
    .build()

client.newCall(request).execute().use { response ->
    if (!response.isSuccessful) throw IOException("Unexpected code $response")

    val responseText = response.body?.string()
    // Обработка ответа от API
}


В этом примере мы создаем экземпляр OkHttpClient и используем его для создания запроса. Затем мы вызываем метод execute(), чтобы выполнить запрос, и получаем ответ в виде объекта Response. После этого мы можем использовать метод string() объекта ResponseBody, чтобы получить текстовый ответ от API.


Если вы хотите отправить POST-запрос, то можете использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
val client = OkHttpClient()

val requestBody = FormBody.Builder()
    .add("key1", "value1")
    .add("key2", "value2")
    .build()

val request = Request.Builder()
    .url("https://api.example.com/data")
    .post(requestBody)
    .build()

client.newCall(request).execute().use { response ->
    if (!response.isSuccessful) throw IOException("Unexpected code $response")

    val responseText = response.body?.string()
    // Обработка ответа от API
}


Здесь мы создаем экземпляр FormBody и добавляем в него параметры POST-запроса. Затем мы создаем объект Request, используя этот FormBody, и отправляем его с помощью метода post(). Все остальное так же, как и в примере с GET-запросом.

Пользователь

от brook , 4 месяца назад

@bart 

Есть и другие библиотеки, которые также могут быть использованы для выполнения запросов к внешнему API из Kotlin. Например, Retrofit - это библиотека, которая предоставляет удобный интерфейс для работы с API.


Вот пример кода, который показывает, как выполнить GET-запрос с использованием Retrofit:


1 2 3 4 5 6 7 8 9 10 11 12


interface ApiService { @GET("/data") fun getData(): Call }


val retrofit = Retrofit.Builder() .baseUrl("https://api.example.com") .build()


val apiService = retrofit.create(ApiService::class.java)


val call = apiService.getData() val response = call.execute()


if (response.isSuccessful) { val responseBody = response.body() // Обработка ответа от API }


В этом примере мы создаем интерфейс ApiService, который содержит метод getData(), использующий аннотацию @GET для указания URL-адреса запроса. Затем мы создаем экземпляр Retrofit с базовым URL-адресом API и создаем объект ApiService с использованием метода create(). Далее мы вызываем метод getData(), который возвращает объект типа Call, и выполняем его с помощью метода execute(). Мы можем проверить успешность выполнения запроса с помощью метода isSuccessful объекта Response. Если запрос успешен, мы можем использовать метод body() объекта Response для получения данных ответа от API.