Печать пустых строк HttpResponse JDK 11 - PullRequest
0 голосов
/ 16 января 2019

Я изучаю новый 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 Ответ

0 голосов
/ 16 января 2019

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

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

...