我正在研究Java11中的新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()不打印正文中的内容?
发布于 2019-01-17 01:23:38
如果您检查响应状态代码,您将看到它是301,这是一个重定向(永久移动)。通过检查响应头,您可以看到新位置是http://iteratrlearning.com。这是一个重定向到一个不同的站点,所以默认情况下HttpClient不会遵循这个链接(重定向到不同的站点通常可以用于诈骗)。
如果您愿意,您可以将HttpClient配置为始终遵循重定向-但我不建议您在测试之外,或者当您信任原始站点(您可以使用HttpClient::followRedirect(Redirect.ALWAYS))时使用它。
https://stackoverflow.com/questions/54208474
复制相似问题