Параметры адреса в Kotlin
После знака "?" в адресе идут пары
"имя=значение", разделенные "&".
Их называют параметрами строки запроса. Клиент
передает их как часть URI, без отдельного
API.
Объект URI.create принимает полную строку
адреса. Сервис "/get" возвращает параметры
в теле, так что их легко проверить:
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
fun main() {
val client = HttpClient.newBuilder().build()
val address = URI.create(
"https://httpbin.org/get?item=pen",
)
val request = HttpRequest.newBuilder()
.uri(address)
.GET()
.build()
val response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
)
println(response.body())
}
Несколько параметров пишут в одной строке через
"&". Пробелы и спецсимволы кодируют по
правилам URI, иначе адрес может быть отклонен:
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
fun main() {
val client = HttpClient.newBuilder().build()
val address = URI.create(
"https://httpbin.org/get?item=pen&color=blue",
)
val request = HttpRequest.newBuilder()
.uri(address)
.GET()
.build()
val response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
)
println(response.body())
}
Выведите тело ответа для
"https://httpbin.org/get?city=omsk".
Отправьте чтение с параметрами "page"
равным "2" и "lang" равным
"ru" на "/get". Напечатайте
полное тело ответа.