为什么我只在使用 Java HTTP 客户端时得到 HTTP 响应状态代码 451?
Why do I get HTTP Response Status Code 451 only when using the Java HTTP Client?
我想发出 GET 请求,它可以与 OkHttpClient、我的网络浏览器和邮递员一起正常工作。
但是当我使用 Java HTTP 客户端时,我收到响应代码 451。
这是我的代码:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("*Some URL*"))
.build();
HttpResponse<String> response=null;
try {
response = client.send(request, BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}System.out.println(response.body());
“451”是打印出来的。
为什么?
添加“User-Agent”-Header 解决了我的问题。
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("*URL*"))
.header("User-Agent", "Mozilla/5.0")
.build();
我想发出 GET 请求,它可以与 OkHttpClient、我的网络浏览器和邮递员一起正常工作。 但是当我使用 Java HTTP 客户端时,我收到响应代码 451。 这是我的代码:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("*Some URL*"))
.build();
HttpResponse<String> response=null;
try {
response = client.send(request, BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}System.out.println(response.body());
“451”是打印出来的。 为什么?
添加“User-Agent”-Header 解决了我的问题。
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("*URL*"))
.header("User-Agent", "Mozilla/5.0")
.build();