bittrex 取引所プラットフォーム上の暗号通貨に関する情報を C# で復元しようとしています。
そのために、私はこのウェブサイトを持っています: https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC . Chromeを使用すると、次の結果が得られます。
{"success":true,"message":"","result":"Bid":0.01678600,"Ask":0.01680095,"Last":0.01678600}}
そしてそれを取り戻したい。だから私のフォームで私は設定しました:
パブリック変数:
public const string BaseUrl = "https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC";
公開ボタン イベント :
var webreq = WebRequest.Create(BaseUrl);
var webresp = webreq.GetResponse();
MessageBox.Show("" + webresp);
プログラムを実行すると、認証の問題でエラーが発生しますが、公開鍵で情報を読み取るときだけです。
誰が私が間違っているか知っていますか? この認証の問題を回避するにはどうすればよいですか?
更新: ありがとうディーター B、私はまだ認証エラーがあります。エンコードと必要な時間形式についてはわかりません。手がかりはありますか?
public static string time = DateTime.Now.ToString();
public static string apisecret = "f**********************************d";
public static string BaseUrl = "https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC?apikey=56************************61a&nonce="+time;
public static readonly Encoding encoding = Encoding.UTF8;
public static string sbinary;
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
var keyByte = encoding.GetBytes(BaseUrl);
using (var hmacsha256 = new HMACSHA256(keyByte))
{
hmacsha256.ComputeHash(encoding.GetBytes(apisecret));
sbinary = ByteToString(hmacsha256.Hash);
}
HttpWebRequest GETRequest = (HttpWebRequest)WebRequest.Create(BaseUrl);
GETRequest.Headers.Add("apisign", sbinary);
GETRequest.Method = "GET";
MessageBox.Show(sbinary);
HttpWebResponse GETResponse = (HttpWebResponse)GETRequest.GetResponse();
Stream GETResponseStream = GETResponse.GetResponseStream();
StreamReader sr = new StreamReader(GETResponseStream);
MessageBox.Show(sr.ReadToEnd());
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static string ByteToString(byte[] buff)
{
string sbinary = "";
for (int i = 0; i < buff.Length; i++)
sbinary += buff[i].ToString("X2"); /* hex format */
return sbinary;
}
ありがとうございました