2016-07-05 7 views
1

CURLをプログラミングしたいWebserviceクライアントはJavaで動作しますが、動作しません。CURLとJavaエラー

私はcom.sun.jersey.api.client.ClientとClientResponseを使用して小さなプログラムを作るが、失敗し、この

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: " 

のクライアントを作りたいです。

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どうもありがとうが私を助けるために の例では、ということです。

+1

というように、それらをヘッダではなくqueryParamsとして送信しているように見えます。 webResource.header(name、value)を参照してください。 – slipperyseal

+1

また、最初のコードサンプルでは 'https:// api.esios.ree.es/archives'を使い、' https://api.esios.ree.es/archive '第2に –

+0

トークンが機密である場合、コードに投稿したくないかもしれません – slipperyseal

答えて

2

これらの値は、クエリパラメータではなくヘッダーとして送信する必要があります。

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); 

私はheader()メソッドでこれを設定しているので、accept()メソッドを削除しました。

また、Ruslanによって指摘されているように、正しいエンドポイントを呼び出していることを確認してください。

+0

ありがとう、ありがとうございます。それは本当に作品です! – user3547469

-1

注意! client.resource route ("https://api.esios.ree.es/archive");が間違っている場合は、が返信されない場合は、404 error