1 回答

TA貢獻2036條經驗 獲得超8個贊
根據討論,我已經瀏覽了您提供的 API。實際上,api 在進行 rest 調用時提供了誤導性消息。如果您查看從 api 調用收到的錯誤消息的詳細信息,它說。
本網站 (api.pro.coinbase.com) 的所有者已根據您瀏覽器的簽名 (4e0a3c06895d89af-ua21) 禁止您訪問。
所以答案是什么 ?api 實際上希望調用應該從瀏覽器進行,并且每個瀏覽器都會發送一個名為“User-Agent”的標頭。看看什么是用戶代理。不過,我已經解決了你的問題,你可以查看下面的完整代碼。
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 文件。
jersey-client 版本 1.8 如果你使用 Maven,你可以在 pom.xml 中包含以下依賴項。
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.8</version>
</dependency>
添加回答
舉報