我正在尝试使用 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 分钟左右),并且只有在我重新启动程序时才会更新。有人知道如何获得当前价格吗?有时也会出现连接错误。
实际上,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,从那以后你就可以一直使用直接调用..
顺便说一句,每个细节都可以在这里找到: