Печать пустых строк HttpResponse JDK 11

Я изучаю новый HttpClient с Java 11 и не работает должным образом. Когда я пытаюсь распечатать тело с сайта body() Метод печати пустых строк:

var httpClient = HttpClient.newHttpClient();        
var request = HttpRequest.newBuilder(URI.create("http://iteratorlearning.com")).build();
HttpResponse<String> response = httpClient.send(request,BodyHandlers.ofString()); 
System.out.println("Printing Body : " + response.body());

Зачем response.body() не печатать содержимое с тела?

1 ответ

Решение

Если вы изучите код состояния ответа, вы увидите, что это 301, который является перенаправлением (перемещен навсегда). Изучив заголовки ответа, вы можете увидеть, что новое местоположение http://iteratrlearning.com, Это перенаправление на другой сайт, поэтому по умолчанию HttpClient не будет переходить по этой ссылке (перенаправление на разные сайты часто может использоваться для мошенничества).

Вы можете настроить HttpClient так, чтобы он всегда следовал перенаправлению, если хотите, но я бы не рекомендовал его вне целей тестирования или когда вы доверяете исходному сайту (вы можете использовать HttpClient::followRedirect(Redirect.ALWAYS))

Другие вопросы по тегам