比特儿是国内主流的比特币/山寨币买卖网站,其上能够进行大部分虚拟钱银之间及与人民币的买卖和兑换。

参阅国外的btc-e网站,能看到bter.com几乎是btc-e的一个克隆版。bter同btc-e一样供给有主动买卖API接口。并在网站上供给了一个php版的比如,检查两个网站的php比如,发现几乎完全相同。而btc-e网站供给了多种语言的拜访比如。其中的.net接口比如是比较完整和精巧的。它将btc-e的原始网站api接口进行二次封装生成dll,在.net程序中能够非常简单的调用。现在咱们看一下如何改动btc-e.com的.net例程以用于比特儿买卖网站。
在https://github.com/DmT021/BtceApi下载到btc-e的.net例程源码包。咱们看到,在项目里一个BtceApi的子项目才是拜访btc-e主动买卖API的核心源码,这个子项目生成Btceapi.dll,被apitest主程序引用。
btceapi项目中,btceapi.cs是程序核心,而btcdpair.cs及Depth.cs,Funds.cs等等用于一些常数或结构的界说。在btceapi.cs源码中,咱们查找https://btc-e.com/tapi,将此地址改为bter.com的相应地址:
//var request = WebRequest.Create(new Uri("https://btc-e.com/tapi")) as HttpWebRequest;
var request = WebRequest.Create(new Uri("https://bter.com/api")) as HttpWebRequest;
而详细api调用也需求更改:
//string queryStr = string.Format("https://btc-e.com/api/2/https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg0}/depth", BtcePairHelper.ToString(pair));
string queryStr = string.Format("https://bter.com/api/1/depth/https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg0}", BtcePairHelper.ToString(pair));
其余类似地方均作修正即可。好,现在咱们写些代码测验下bter的买卖行情api。确认btceapi.cs已经做过如下修正:
//string queryStr = string.Format("https://btc-e.com/api/2/https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg0}/ticker", BtcePairHelper.ToString(pair));
string queryStr = string.Format("https://bter.com/api/1/ticker/https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg0}", BtcePairHelper.ToString(pair));
然后咱们在调用者程序中用以下句子调用封装过的接口:
var ticker1 = BtceApi.GetTicker(BtcePair.LtcBtc);
System.Console.Out.WriteLine(Convert.ToString(ticker1.High) + "|" + Convert.ToString(ticker1.Low));
咱们检查的是ltc兑换btc的行情数据。ticker.cs已界说了btc-e.com的买卖行情API的回来结构,比如ticker.sell是卖单数量,ticker.low是最低价等,测验起见,以上句子只显现最高价和最低价以验证成果。
编译运行,悲惨剧,出现异常了。显现未界说的变量之类,没关系,让咱们调试一下代码:
public static Ticker GetTicker(BtcePair pair)
https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg
string resStr;
//string queryStr = string.Format("https://btc-e.com/api/2/https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg0}/ticker", BtcePairHelper.ToString(pair));
string queryStr = string.Format("https://bter.com/api/1/ticker/https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg0}", BtcePairHelper.ToString(pair));
resStr = Query(queryStr);
var res = JObject.Parse(resStr);
return Ticker.ReadFromJObject(res["ticker"] as JObject);
}
咱们在btceapi.cs的getticker方法中,看到一直到var res = JObject.Parse(resStr)句都是正常的。甚至变量res也得到了正确的成果。然而与原btc-e网站的回来成果比较,btc-e网站的成果虽也是json格式,但却是放在一个ticker结构里面,而bter.com回来的json则未将各high,low等数据项外面再加一层ticker结构包装,导致res["ticker"] as JObject一句出现异常。所以只需将res["ticker"]改为res即可。
好再次编译运行,正常。正确打印出了当时的最高价和最低价。
运用主动买卖API,可根据自己的创意做许多事情,此处不再啰嗦。如果您觉得本文有用,能够支持些BTC或LTC,本人十分感谢。当然不支持也随时欢迎大家光临本博客,哈哈。
BTC捐献地址:1DkC3uMTcvRyghsMzbPcM7WY7GMLFh1987
LTC捐献地址:LVbTBZjXzzBXRcur3Qzfm6UVwF3ZN8uncR

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注