问题描述
我想发出一个 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();