我给出以下方法,如何使用RestSharp将请求发送到Bitstamp API?

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

我正在尝试弄清楚如何使用他们的API从Bitstamp成功检索我的比特币余额。我花了整整一天时间在Stack Overflow和youtube上尝试解决这一问题,因为可以将许多小的部分整合在一起。我认为我已经接近成功了,但其中有一小部分我似乎无法弄清楚。

我如何准确执行此请求?我可能应该在某个地方添加API身份验证,然后使用HMACSHA256方法对其进行签名。但是以什么顺序?我该怎么办?这是API文档-> https://www.bitstamp.net/api/

这是到目前为止我的全部代码:

using RestSharp;
using System;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp5
{
    class Program
    {
        private readonly String _clientId = "xxx";
        private readonly String _apiKey = "xxx";
        private readonly String _apiSecret = "xxx";

        static void Main(string[] args)
        {
            Console.ReadLine();
        }

        public void AddApiAuthentication(RestRequest restRequest)
        {
            var nonce = DateTime.Now.Ticks;
            var signature = GetSignature(nonce, _apiKey, _apiSecret, _clientId);

            restRequest.AddParameter("key", _apiKey);
            restRequest.AddParameter("signature", signature);
            restRequest.AddParameter("nonce", nonce);

        }

        private string GetSignature(long nonce, string key, string secret, string clientId)
        {
            string msg = string.Format("{0}{1}{2}", nonce,
                clientId,
                key);

            return ByteArrayToString(SignHMACSHA256(secret, StringToByteArray(msg))).ToUpper();
        }
        public static byte[] SignHMACSHA256(String key, byte[] data)
        {
            HMACSHA256 hashMaker = new HMACSHA256(Encoding.ASCII.GetBytes(key));
            return hashMaker.ComputeHash(data);
        }

        public static byte[] StringToByteArray(string str)
        {
            return System.Text.Encoding.ASCII.GetBytes(str);
        }

        public static string ByteArrayToString(byte[] hash)
        {
            return BitConverter.ToString(hash).Replace("-", "").ToLower();
        }
    }
}

实际上只是我所缺少的执行部分。根据API文档,我应该介绍所有其他内容。有些想法会很棒。

谢谢,Nexigen。

c# api authentication execution
1个回答
0
投票

这里有几个问题:

  • 您需要创建一个RestClient和一个RestRequest,并在填充其标头之后将请求传递给客户端
  • 您使用的标头名称与bitstamp api文档和示例中引用的标头名称不匹配:“在此处输入图像描述”“ >>
© www.soinside.com 2019 - 2024. All rights reserved.