0

我正在研究HttpClientJava 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()不打印正文中的内容?

4

1 回答 1

1

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

如果需要,您可以将 HttpClient 配置为始终遵循重定向 - 但我不建议在测试目的之外使用它,或者当您信任原始站点时(您可以使用HttpClient::followRedirect(Redirect.ALWAYS)

于 2019-01-16T17:23:38.300 回答