Код статуса ответа в Kotlin
Первая строка ответа сервера содержит код состояния -
трехзначное число. Клиент JDK кладет его в
HttpResponse.statusCode. Тело при этом
может быть пустым, но код все равно доступен.
Сервис httpbin.org умеет отвечать с заданным
кодом по пути "/status/201". Так проверяют,
что программа видит не только 200:
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/status/201"))
.GET()
.build()
val response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
)
println(response.statusCode())
}
Обработчик ofString здесь нужен лишь как
аргумент send: тело для 201 часто
пустое, а код уже известен до его разбора:
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/status/201"))
.GET()
.build()
val response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
)
println(response.statusCode())
println(response.body().isEmpty())
}
Выведите код ответа для
"https://httpbin.org/status/404".
Отправьте запрос на
"https://httpbin.org/status/204" и
напечатайте код и признак пустого тела через
пробел.