В соответствии с обсуждением, я прошел API, который вы предоставили. На самом деле, API обеспечивает вводящее в заблуждение сообщение при совершении вызова покоя. Если вы посмотрите подробности сообщения об ошибке, полученного от вызова API, он говорит.
Владелец этого сайта (api.pro.coinbase.com) заблокировал вашу
доступ на основе подписи вашего браузера (4e0a3c06895d89af-ua21).
Так, каков ответ? API на самом деле хочет, чтобы вызов был сделан из браузера, и каждый браузер отправляет заголовок под названием «Пользователь-агент». Посмотрите, что такое пользовательский агент . Тем не менее, я решил вашу проблему, вы можете проверить полный код ниже.
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
public class TestGetCallByJersey {
public static void main(String[] args) {
String resourceUri = "https://api.pro.coinbase.com/products";
try {
Client client = Client.create();
WebResource webResource = client.resource(resourceUri);
ClientResponse response =
webResource
.accept("application/json")
.header("User-Agent", "Mozilla/5.0")
.get(ClientResponse.class);
System.out.println("response status = " + response.getStatus());
String result = response.getEntity(String.class);
System.out.println("Output from api call .... \n" + result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
В настоящее время я тестировал Java 8 и использовал следующий файл jar.
Джерси-клиент версия 1.8
Если вы используете Maven, вы можете включить следующую зависимость в pom.xml.
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.8</version>
</dependency>