【发布时间】:2017-11-03 16:25:10
【问题描述】:
我收到了 403 Forbidden 代码和这条 JSON 消息:
{
"status": "error",
"reason": "Missing key, signature and nonce parameters.",
"code" : "API0000"
}
我正在使用 C# 进行开发,但也使用 Postman 手动尝试并得到了相同的结果。
对于签名计算,我使用了类似帖子中的代码:
#region Methods
private string GetSignature(string customerId, string publicApiKey, string privateApiKey, Int32 nonce)
{
string msg = string.Format("{0}{1}{2}", nonce,
customerId,
publicApiKey);
return ByteArrayToString(SignHMACSHA256(privateApiKey, StringToByteArray(msg))).ToUpper();
}
private static byte[] SignHMACSHA256(String key, byte[] data)
{
HMACSHA256 hashMaker = new HMACSHA256(Encoding.ASCII.GetBytes(key));
return hashMaker.ComputeHash(data);
}
private static byte[] StringToByteArray(string str)
{
return System.Text.Encoding.ASCII.GetBytes(str);
}
private static string ByteArrayToString(byte[] hash)
{
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
#endregion
如何成功验证请求?
更新: 我对 python 代码的签名生成进行了交叉检查,没关系。还能是什么?
【问题讨论】:
-
您插入了真正的密钥吗? URL中的key是:xxxxxxxx
-
是的,我确实插入了一个真实的,我只是在这里掩盖了它
-
网站经常给出虚假的错误信息,以防止黑客从错误信息中学习。 403 通常是一般错误消息,仅表示出现问题。您可能没有使用 V2。见简介:bitstamp.net/api
标签: c# api authentication httprequest