我正在研究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()
不打印正文中的内容?
答案 0 :(得分:1)
如果检查响应状态代码,您将看到它是301
,它是重定向(永久移动)。通过检查响应头,您可以看到新位置为http://iteratrlearning.com
。这是重定向到其他站点,因此默认情况下HttpClient不会跟随此链接(重定向到其他站点通常可用于欺诈)。
您可以根据需要将HttpClient配置为始终遵循重定向-但我不建议出于测试目的或在您信任原始站点(可以使用HttpClient::followRedirect(Redirect.ALWAYS)
的情况下使用)