【发布时间】:2014-03-03 22:42:31
【问题描述】:
我无法从 BitStamp API 接收任何数据。 我在这里做错了什么?我的内容表单响应导致错误:
{"error": "Missing key, signature and nonce parameters"}
public ActionResult Index()
{
const string BaseUrl = "https://www.bitstamp.net/api/balance/";
var client = new RestClient();
var request = new RestRequest();
client.BaseUrl = BaseUrl;
AddApiAuthentication(request);
var response = client.Execute(request);
var foo = response.Content;
//{"error": "Missing key, signature and nonce parameters"}
return View();
}
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, StrinToByteArray(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[] StrinToByteArray(string str)
{
return System.Text.Encoding.ASCII.GetBytes(str);
}
public static string ByteArrayToString(byte[] hash)
{
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
API 身份验证似乎对this post 中的用户有效。 我是否以正确的方式执行请求?
【问题讨论】:
-
我将在今天晚些时候对此进行研究。我现在在工作,没有时间,但我相信我能找到问题:)
-
那太棒了!谢谢