打印空白行HttpResponse JDK 11

时间:2019-01-15 23:48:53

标签: java-11 java-http-client

我正在研究Java 11中的新HttpClient,但无法正常工作。当我尝试从网站上打印正文时,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 :(得分:1)

如果检查响应状态代码,您将看到它是301,它是重定向(永久移动)。通过检查响应头,您可以看到新位置为http://iteratrlearning.com。这是重定向到其他站点,因此默认情况下HttpClient不会跟随此链接(重定向到其他站点通常可用于欺诈)。

您可以根据需要将HttpClient配置为始终遵循重定向-但我不建议出于测试目的或在您信任原始站点(可以使用HttpClient::followRedirect(Redirect.ALWAYS)的情况下使用)