打印空行 HttpResponse JDK 11
Printing blank lines HttpResponse JDK 11
我正在研究 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()
不打印正文中的内容?
如果您检查响应状态代码,您会发现它是 301
,这是一个重定向(永久移动)。通过检查响应 headers,您可以看到新位置是 http://iteratrlearning.com
。这是到不同站点的重定向,因此默认情况下 HttpClient 不会遵循此 link(重定向到不同站点通常可用于诈骗)。
如果您愿意,您可以将 HttpClient 配置为始终遵循重定向 - 但我不会推荐它用于测试目的之外,或者当您信任原始站点时(您可以使用 HttpClient::followRedirect(Redirect.ALWAYS)
)
我正在研究 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()
不打印正文中的内容?
如果您检查响应状态代码,您会发现它是 301
,这是一个重定向(永久移动)。通过检查响应 headers,您可以看到新位置是 http://iteratrlearning.com
。这是到不同站点的重定向,因此默认情况下 HttpClient 不会遵循此 link(重定向到不同站点通常可用于诈骗)。
如果您愿意,您可以将 HttpClient 配置为始终遵循重定向 - 但我不会推荐它用于测试目的之外,或者当您信任原始站点时(您可以使用 HttpClient::followRedirect(Redirect.ALWAYS)
)