Метод uri
Метод uri класса HttpResponse возвращает
объект URI, для которого был получен данный
HTTP-ответ. Метод не принимает параметров и возвращает
адрес ресурса, к которому был выполнен запрос. Это
позволяет проверить, к какому именно адресу относится
полученный ответ, что особенно полезно при работе
с перенаправлениями или несколькими запросами.
Синтаксис
response.uri()
Пример
Давайте выполним GET-запрос к сайту и выведем URI, для которого был получен ответ:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main
{
public static void main(String[] args) throws Exception
{
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://code.mu"))
.GET()
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString()
);
System.out.println(response.uri());
}
}
Результат выполнения кода:
"https://code.mu"
Пример
Давайте сравним URI исходного запроса и URI из ответа:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main
{
public static void main(String[] args) throws Exception
{
HttpClient client = HttpClient.newHttpClient();
URI target = URI.create("https://code.mu/ru/java/");
HttpRequest request = HttpRequest.newBuilder()
.uri(target)
.GET()
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString()
);
URI res = response.uri();
System.out.println("Request URI: " + target);
System.out.println("Response URI: " + res);
}
}
Результат выполнения кода:
"Request URI: https://code.mu/ru/java/"
"Response URI: https://code.mu/ru/java/"
Смотрите также
-
класс
HttpResponse,
который представляет HTTP-ответ -
метод
statusCode,
который возвращает код статуса ответа -
метод
body,
который возвращает тело ответа -
метод
uri,
который задает URI запроса