Jersey 客户端 REST API 生成 http 403 错误
Jersey client REST API generates http 403 error
我的 java 项目上的 Jersey 客户端 REST-API 生成 HTTP 403 错误。虽然这个项目 运行 可以调用其他 Restful API 除了假的基于在线的 REST API JSONPlaceholder
。请找到我的以下代码:
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Client client = Client.create();
WebResource webResource = client.resource("http://jsonplaceholder.typicode.com/posts");
ClientResponse response = webResource.accept("application/json")
.get(ClientResponse.class);
if(response.getStatus() != 200) {
throw new RuntimeException("Failed http error code :" + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println(output);
错误:
昨天看问题的时候本能地想到了user-agentheader。你的评论证明了这一点。为了给出更易读的答案,我将提供以下与您的示例相关的工作代码(尽管如此,我敢打赌,不提供 UA 不是最好的方法;))。
Client c = Client.create();
WebResource wr = c.resource("http://jsonplaceholder.typicode.com/posts");
ClientResponse resp = wr.accept("application/json").header("user-agent", "").get(ClientResponse.class);
if (resp.getStatus() != 200) {
throw new RuntimeException("Failed http error code :" + resp.getStatus());
}
String output = resp.getEntity(String.class);
System.out.println(output);
正如我在评论中提到的,在 webResource 实例的 header 中设置键 ("user-agent")
和值 ("")
导致解决方案。希望下面的代码片段能给你更好的想法。
Client client = Client.create();
WebResource webResource = client.resource("http://jsonplaceholder.typicode.com/posts");
ClientResponse response = webResource.accept("application/json")
.header("user-agent", "")
.get(ClientResponse.class);
if(response.getStatus() != 200) {
throw new RuntimeException("Failed http error code :" + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println(output);
感谢大家的宝贵意见。
我的 java 项目上的 Jersey 客户端 REST-API 生成 HTTP 403 错误。虽然这个项目 运行 可以调用其他 Restful API 除了假的基于在线的 REST API JSONPlaceholder
。请找到我的以下代码:
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Client client = Client.create();
WebResource webResource = client.resource("http://jsonplaceholder.typicode.com/posts");
ClientResponse response = webResource.accept("application/json")
.get(ClientResponse.class);
if(response.getStatus() != 200) {
throw new RuntimeException("Failed http error code :" + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println(output);
错误:
昨天看问题的时候本能地想到了user-agentheader。你的评论证明了这一点。为了给出更易读的答案,我将提供以下与您的示例相关的工作代码(尽管如此,我敢打赌,不提供 UA 不是最好的方法;))。
Client c = Client.create();
WebResource wr = c.resource("http://jsonplaceholder.typicode.com/posts");
ClientResponse resp = wr.accept("application/json").header("user-agent", "").get(ClientResponse.class);
if (resp.getStatus() != 200) {
throw new RuntimeException("Failed http error code :" + resp.getStatus());
}
String output = resp.getEntity(String.class);
System.out.println(output);
正如我在评论中提到的,在 webResource 实例的 header 中设置键 ("user-agent")
和值 ("")
导致解决方案。希望下面的代码片段能给你更好的想法。
Client client = Client.create();
WebResource webResource = client.resource("http://jsonplaceholder.typicode.com/posts");
ClientResponse response = webResource.accept("application/json")
.header("user-agent", "")
.get(ClientResponse.class);
if(response.getStatus() != 200) {
throw new RuntimeException("Failed http error code :" + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println(output);
感谢大家的宝贵意见。