简单的货币观察者

问题描述 投票:0回答:1

我正在尝试使用 cryptsy.com 的 API 来获取 doge 的当前价格。这是我的代码:

package main;

import java.text.DecimalFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import main.Cryptsy.CryptsyException;
import main.Cryptsy.PublicMarket;


public class Main {
    
    public static void main (String [] args) throws CryptsyException, InterruptedException{
        
        Cryptsy cryptsy = new Cryptsy();

        while(true){
            PublicMarket[] markets = cryptsy.getPublicMarketData();
            for(PublicMarket market : markets) {
                DecimalFormat df = new DecimalFormat("#.########");
                if(market.label.equals("DOGE/BTC"))
                    System.out.println(new Date() + "   " + market.label + "   " + df.format(market.lasttradeprice));
            }
        TimeUnit.SECONDS.sleep(30);
        }
    }
}

问题是价格更新得太晚(30 分钟左右),并且只有在我重新启动程序时才会更新。有人知道如何获得当前价格吗?有时也会出现连接错误。

java finance
1个回答
0
投票

实际上,Cryptsy API 出现连接问题是正常的。它很慢并且经常在没有答案的情况下断开连接。他们像往常一样拥挤不堪。

有一个新的 API 位置,应该更快并解决连接问题,在这里:

http://pubapi.cryptsy.com/api.php?method=marketdatav2

此外,如果您只对一种货币感兴趣,您只能获取该货币的市场数据。 Cryptsy 对所有货币的整个答案大约是 300k,所以如果你每分钟左右轮询一次,你就会浪费带宽。

对于只有一种货币,它会像:

http://pubapi.cryptsy.com/api.php?method=singlemarketdata&marketid={市场ID}

可以在第一个 URL 的答案中收集市场 ID。但你只需要一次市场的int ID,从那以后你就可以一直使用直接调用..

顺便说一句,每个细节都可以在这里找到:

https://www.cryptsy.com/pages/api

© www.soinside.com 2019 - 2024. All rights reserved.