Заголовки запроса в Kotlin
Заголовки запроса - пары имя и значение, которые
идут до тела. Построитель HttpRequest
принимает их вызовом header или
setHeader для одного поля.
Путь "/headers" на httpbin.org
возвращает переданные заголовки в теле ответа.
Достаточно задать, например, тип принимаемого
текста:
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 request = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/headers"))
.header("Accept", "text/plain")
.GET()
.build()
val response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
)
println(response.body())
}
Собственные имена вроде "X-Trace" тоже
доходят до сервера. Их часто используют для
меток трассировки или версии клиента:
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 request = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/headers"))
.header("X-Trace", "alpha-7")
.GET()
.build()
val response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
)
println(response.body())
}
Отправьте чтение на "/headers" с полем
"Accept-Language" равным "ru".
Выведите тело ответа.
Выведите тело ответа для "/headers",
если в запрос добавлено поле "X-Client"
со значением "desk".