Java对接PAO.StockTV全球金融数据API指南

Java对接StockTV全球金融数据API指南

PAO.StockTV提供全球股票、外汇、期货、加密货币等金融数据的API接口。本文将通过Java代码示例演示如何对接这些API。

准备工作

1. 获取API Key

PAO.StockTV获取,所有请求需携带key参数。

2. 添加依赖

<!-- HttpClient -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>
<!-- JSON解析 -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>

股票API对接

  1. 获取市场列表
public class StockAPI {
    private static final String BASE_URL = "https://api.stocktv.top";
    private static final String API_KEY = "YOUR_API_KEY"; // 替换为实际Key

    public static String getStockList(int countryId) throws IOException {
        String path = "/stock/stocks";
        String url = BASE_URL + path + "?countryId=" + countryId + "&key=" + API_KEY;

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpGet request = new HttpGet(url);
            try (CloseableHttpResponse response = client.execute(request)) {
                return EntityUtils.toString(response.getEntity());
            }
        }
    }
    
    // 示例调用
    public static void main(String[] args) throws IOException {
        String result = getStockList(14); // 14代表印度
        System.out.println(result);
    }
}
3. 查询K线数据
public static String getKlineData(long pid, String interval) throws IOException {
    String path = "/stock/kline";
    String url = String.format("%s%s?pid=%d&interval=%s&key=%s", 
            BASE_URL, path, pid, interval, API_KEY);

    try (CloseableHttpClient client = HttpClients.createDefault()) {
        HttpGet request = new HttpGet(url);
        try (CloseableHttpResponse response = client.execute(request)) {
            return EntityUtils.toString(response.getEntity());
        }
    }
}
// 使用示例
String kline = getKlineData(7310, "PT15M"); // 15分钟K线
外汇API对接
实时汇率查询
public class ForexAPI {
    public static String getCurrencyRates(String countryType) throws IOException {
        String path = "/market/currency";
        String url = String.format("%s%s?key=%s&countryType=%s", 
                BASE_URL, path, API_KEY, countryType);

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpGet request = new HttpGet(url);
            try (CloseableHttpResponse response = client.execute(request)) {
                return EntityUtils.toString(response.getEntity());
            }
        }
    }
}

// 调用示例
String rates = ForexAPI.getCurrencyRates("sg"); // 新加坡交叉汇率

期货API对接
获取期货行情

java
public class FuturesAPI {
    public static String getFuturesData(String symbol) throws IOException {
        String path = "/futures/querySymbol";
        String url = String.format("%s%s?key=%s&symbol=%s", 
                BASE_URL, path, API_KEY, symbol);

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpGet request = new HttpGet(url);
            try (CloseableHttpResponse response = client.execute(request)) {
                return EntityUtils.toString(response.getEntity());
            }
        }
    }
}

// 示例:查询新加坡铁矿石期货
String futuresData = FuturesAPI.getFuturesData("FEF");

加密货币API对接
获取最新价格

public class CryptoAPI {
    public static String getCryptoPrice(String symbols) throws IOException {
        String path = "/crypto/lastPrice";
        String url = String.format("%s%s?key=%s&symbols=%s", 
                BASE_URL, path, API_KEY, symbols);

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpGet request = new HttpGet(url);
            try (CloseableHttpResponse response = client.execute(request)) {
                return EntityUtils.toString(response.getEntity());
            }
        }
    }
}

// 查询BTC和ETH价格
String prices = CryptoAPI.getCryptoPrice("BTCUSDT,ETHUSDT");

WebSocket实时数据

// 使用Tyrus客户端示例
@ClientEndpoint
public class StockWebSocketClient {
    private Session session;

    @OnOpen
    public void onOpen(Session session) {
        this.session = session;
        System.out.println("Connected to WebSocket");
    }

    @OnMessage
    public void onMessage(String message) {
        System.out.println("Received: " + message);
    }

    public static void main(String[] args) {
        String wsUrl = "wss://ws-api.stocktv.top/connect?key=" + API_KEY;
        WebSocketContainer container = ContainerProvider.getWebSocketContainer();
        try {
            container.connectToServer(StockWebSocketClient.class, URI.create(wsUrl));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
posted @ 2025-03-07 15:12  CryptoPP  阅读(47)  评论(0)    收藏  举报