Java SDK REST API 和 WebSocket 實時推送接口 金融數據API文檔 SDK & 開發工具 iTick 官方 Java SDK,提供基礎、股票、指數、期貨、基金、外匯、加密貨幣數據的 REST API 查詢和 WebSocket 實時數據訂閱功能。
Java SDK 文檔
Java 語言版本的 iTick API SDK,提供基礎、股票、指數、期貨、基金、外匯、加密貨幣數據的 REST API 查詢和 WebSocket 實時數據訂閱功能。
功能特性
- 支持 REST API 查詢基礎、股票、指數、期貨、基金、外匯、加密貨幣數據
- 支持 WebSocket 實時數據訂閱
- 自動重連機制
- 心跳保持連接
- 回調式事件處理
安裝
Maven
在您的 pom.xml 中添加以下依賴:
<dependency>
<groupId>io.itick</groupId>
<artifactId>sdk</artifactId>
<version>0.1.1</version>
</dependency>
Gradle
在您的 build.gradle 中添加以下依賴:
implementation 'io.itick:sdk:0.1.1'
從源碼構建
cd java
mvn clean install
快速開始
初始化客戶端
import io.itick.sdk.Client;
public class Example {
public static void main(String[] args) {
String token = "your_api_token";
Client client = new Client(token);
}
}
REST API 使用
外匯數據查詢
// 獲取外匯實時成交
var tick = client.getForexTick("GB", "EURUSD");
System.out.println(tick);
// 獲取外匯實時報價
var quote = client.getForexQuote("GB", "EURUSD");
System.out.println(quote);
// 獲取外匯實時盤口
var depth = client.getForexDepth("GB", "EURUSD");
System.out.println(depth);
// 獲取外匯歷史K線
var kline = client.getForexKline("GB", "EURUSD", 2, 10, null);
for (var k : kline) {
System.out.println(k);
}
股票數據查詢
// 獲取股票實時成交
var tick = client.getStockTick("US", "AAPL");
System.out.println(tick);
// 獲取股票實時報價
var quote = client.getStockQuote("US", "AAPL");
System.out.println(quote);
// 獲取股票實時盤口
var depth = client.getStockDepth("US", "AAPL");
System.out.println(depth);
// 獲取股票歷史K線
var kline = client.getStockKline("US", "AAPL", 2, 10, null);
for (var k : kline) {
System.out.println(k);
}
加密貨幣數據查詢
// 獲取加密貨幣實時成交
var tick = client.getCryptoTick("BA", "BTCUSDT");
System.out.println(tick);
// 獲取加密貨幣實時報價
var quote = client.getCryptoQuote("BA", "BTCUSDT");
System.out.println(quote);
// 獲取加密貨幣實時盤口
var depth = client.getCryptoDepth("BA", "BTCUSDT");
System.out.println(depth);
// 獲取加密貨幣歷史K線
var kline = client.getCryptoKline("BA", "BTCUSDT", 2, 10, null);
for (var k : kline) {
System.out.println(k);
}
WebSocket 使用
SDK 提供了增強的 WebSocket 功能,包括自動重連和心跳保持,用戶無需手動管理連接狀態。
設置回調函數
// 設置消息處理器
client.setMessageHandler(message -> {
System.out.println("Received WebSocket message: " + message);
});
// 設置錯誤處理器
client.setErrorHandler(error -> {
System.err.println("WebSocket error: " + error.getMessage());
});
// 設置打開處理器
client.setOpenHandler(() -> {
System.out.println("WebSocket connected");
});
// 設置關閉處理器
client.setCloseHandler(() -> {
System.out.println("WebSocket closed");
});
連接和訂閱
``java // 連接外匯 WebSocket client.connectForexWebSocket();
// 發送訂閱消息 client.sendWebSocketMessage("{"action": "subscribe", "codes": "EURUSD"}");
// 等待接收消息 Thread.sleep(5000);
// 檢查連接狀態 System.out.println("WebSocket connected: " + client.isWebSocketConnected());
// 關閉 WebSocket client.closeWebSocket();
#### 其他 WebSocket 連接
``java
// 連接股票 WebSocket
client.connectStockWebSocket();
// 連接加密貨幣 WebSocket
client.connectCryptoWebSocket();
API 接口列表
基礎 (Basics)
| 方法 | 說明 |
|---|---|
| getSymbolList | 獲取符號列表 |
| getSymbolHolidays | 獲取節假日信息 |
股票 (Stock)
| 方法 | 說明 |
|---|---|
| getStockInfo | 獲取股票信息 |
| getStockIPO | 獲取股票IPO信息 |
| getStockSplit | 獲取股票分拆信息 |
| getStockTick | 獲取股票實時成交 |
| getStockQuote | 獲取股票實時報價 |
| getStockDepth | 獲取股票實時盤口 |
| getStockKline | 獲取股票歷史K線 |
| getStockTicks | 獲取股票批量實時成交 |
| getStockQuotes | 獲取股票批量實時報價 |
| getStockDepths | 獲取股票批量實時盤口 |
| getStockKlines | 獲取股票批量歷史K線 |
| connectStockWebSocket | 連接股票 WebSocket |
指數 (Indices)
| 方法 | 說明 |
|---|---|
| getIndicesTick | 獲取指數實時成交 |
| getIndicesQuote | 獲取指數實時報價 |
| getIndicesDepth | 獲取指數實時盤口 |
| getIndicesKline | 獲取指數歷史K線 |
| getIndicesTicks | 獲取指數批量實時成交 |
| getIndicesQuotes | 獲取指數批量實時報價 |
| getIndicesDepths | 獲取指數批量實時盤口 |
| getIndicesKlines | 獲取指數批量歷史K線 |
| connectIndicesWebSocket | 連接指數 WebSocket |
期貨 (Futures)
| 方法 | 說明 |
|---|---|
| getFutureTick | 獲取期貨實時成交 |
| getFutureQuote | 獲取期貨實時報價 |
| getFutureDepth | 獲取期貨實時盤口 |
| getFutureKline | 獲取期貨歷史K線 |
| getFutureTicks | 獲取期貨批量實時成交 |
| getFutureQuotes | 獲取期貨批量實時報價 |
| getFutureDepths | 獲取期貨批量實時盤口 |
| getFutureKlines | 獲取期貨批量歷史K線 |
| connectFutureWebSocket | 連接期貨 WebSocket |
基金 (Funds)
| 方法 | 說明 |
|---|---|
| getFundTick | 獲取基金實時成交 |
| getFundQuote | 獲取基金實時報價 |
| getFundDepth | 獲取基金實時盤口 |
| getFundKline | 獲取基金歷史K線 |
| getFundTicks | 獲取基金批量實時成交 |
| getFundQuotes | 獲取基金批量實時報價 |
| getFundDepths | 獲取基金批量實時盤口 |
| getFundKlines | 獲取基金批量歷史K線 |
| connectFundWebSocket | 連接基金 WebSocket |
外匯 (Forex)
| 方法 | 說明 |
|---|---|
| getForexTick | 獲取外匯實時成交 |
| getForexQuote | 獲取外匯實時報價 |
| getForexDepth | 獲取外匯實時盤口 |
| getForexKline | 獲取外匯歷史K線 |
| getForexTicks | 獲取外匯批量實時成交 |
| getForexQuotes | 獲取外匯批量實時報價 |
| getForexDepths | 獲取外匯批量實時盤口 |
| getForexKlines | 獲取外匯批量歷史K線 |
| connectForexWebSocket | 連接外匯 WebSocket |
加密貨幣 (Crypto)
| 方法 | 說明 |
|---|---|
| getCryptoTick | 獲取加密貨幣實時成交 |
| getCryptoQuote | 獲取加密貨幣實時報價 |
| getCryptoDepth | 獲取加密貨幣實時盤口 |
| getCryptoKline | 獲取加密貨幣歷史K線 |
| getCryptoTicks | 獲取加密貨幣批量實時成交 |
| getCryptoQuotes | 獲取加密貨幣批量實時報價 |
| getCryptoDepths | 獲取加密貨幣批量實時盤口 |
| getCryptoKlines | 獲取加密貨幣批量歷史K線 |
| connectCryptoWebSocket | 連接加密貨幣 WebSocket |
WebSocket 功能說明
自動重連
SDK 內置自動重連機制,當網絡異常或連接斷開時,會自動嘗試重新連接:
- 重連間隔:5 秒
- 最大重連次數:10 次
- 重連成功後自動恢復訂閱
心跳保持
SDK 自動維護 WebSocket 連接的心跳:
- 心跳間隔:30 秒
- 自動發送 ping 消息保持連接活躍
連接狀態檢查
``java // 檢查 WebSocket 是否連接 boolean connected = client.isWebSocketConnected();
## 完整示例
``java
import io.itick.sdk.Client;
public class Main {
public static void main(String[] args) {
try {
// 初始化客戶端
String token = "your_api_token";
Client client = new Client(token);
// 設置 WebSocket 消息處理器
client.setMessageHandler(message -> {
System.out.println("Received WebSocket message: " + message);
});
// 設置 WebSocket 錯誤處理器
client.setErrorHandler(error -> {
System.err.println("WebSocket error: " + error.getMessage());
});
// 測試 REST API
System.out.println("Testing forex tick...");
var tick = client.getForexTick("GB", "EURUSD");
System.out.println(tick);
// 測試 WebSocket
System.out.println("\nTesting WebSocket...");
client.connectForexWebSocket();
// 發送訂閱消息
client.sendWebSocketMessage("{\"action\": \"subscribe\", \"codes\": [\"EURUSD\"]}");
// 等待接收消息
Thread.sleep(5000);
// 檢查連接狀態
System.out.println("WebSocket connected: " + client.isWebSocketConnected());
// 關閉 WebSocket
client.closeWebSocket();
} catch (Exception e) {
e.printStackTrace();
}
}
}
系統要求
- Java 11 或更高版本
- Maven 3.6 或更高版本(用於構建)
依賴項
- OkHttp 4.10.0 - HTTP 客戶端
- Java-WebSocket 1.5.3 - WebSocket 客戶端
- Gson 2.10.1 - JSON 解析