CURL和JAVA错误

CURL和JAVA错误,java,curl,Java,Curl,我想用Java编写一个CURL客户机,但它不起作用 我想成为你的客户 curl "https://api.esios.ree.es/archives" -X GET \ -H "Accept: application/json; application/vnd.esios-api-v1+json" \ -H "Content-Type: application/json" \ -H "Host: api.esios.ree.es" \ -H "Authorization: Token token

我想用Java编写一个CURL客户机,但它不起作用

我想成为你的客户

curl "https://api.esios.ree.es/archives" -X GET \
-H "Accept: application/json; application/vnd.esios-api-v1+json" \
-H "Content-Type: application/json" \
-H "Host: api.esios.ree.es" \
-H "Authorization: Token token=\"96c56fcd69dd5c29f569ab3ea9298b37151a1ee488a1830d353babad3ec90fd7\"" \
-H "Cookie: "
我使用com.sun.jersey.api.client.client和ClientResponse制作了一个小程序,但失败了。 例如:

Client client = Client.create();
WebResource webResource =client.resource("https://api.esios.ree.es/archive");
MultivaluedMap queryParams = new MultivaluedMapImpl();
queryParams.add("Accept", "application/json; application/vnd.esios-api-v1+json");
queryParams.add("Content-Type", "application/json");
queryParams.add("Host", "api.esios.ree.es");
queryParams.add("Authorization", "Token token=\"96c56fcd69dd5c29f569ab3ea9298b37151a1ee488a1830d353babad3ec90fd7\"");
queryParams.add("Cookie", " ");
ClientResponse response = webResource.queryParams(queryParams).accept("application/json").get(ClientResponse.class);
if (response.getStatus() != 200) {
   throw new RuntimeException("Failed : HTTP error code : "
    + response.getStatus());
}

代码响应失败:HTTP错误代码:401。非常感谢你试着帮助我

您需要将这些值作为标题发送,而不是查询参数

ClientResponse response = webResource.header("Accept", "application/json; application/vnd.esios-api-v1+json")
                .header("Content-Type", "application/json")
                .header("Host", "api.esios.ree.es")
                .header("Authorization", "Token token=\"TOKEN\"")
                .header("Cookie", " ")
                .get(ClientResponse.class);
我删除了accept()方法,因为我们正在使用header()方法设置它


正如Ruslan所指出的,检查您呼叫的端点是否正确。

注意!
client.resource路由(“https://api.esios.ree.es/archive");不正确必须是
client.resource(“https://api.esios.ree.es/archives");
if not return
404 error

看起来您发送的是查询参数,而不是标题。参见webResource.header(名称、值),我还发现您使用了
https://api.esios.ree.es/archives
在第一个代码示例和
https://api.esios.ree.es/archive
在第二种情况下,如果该令牌是敏感的,您可能不希望将其发布到代码中