Ich versuche, die Coinspot-REST-API zu erreichen, bekomme aber eine Fehlermeldung. Ich habe keine Probleme mit Bittrex und Independent Reserve zu sprechen, aber Coinspot ist ein bisschen anders. Das ist mein Code:Cospot-REST-API - C#
protected override RESTClient RESTClient { get; } = new RESTClient(new NewtonsoftSerializationAdapter(), new Uri("https://www.coinspot.com.au/api"));
public class postdata
{
public string nonce { get; set; }
}
public string CalculateMD5Hash(string input)
{
//step 1, calculate MD5 hash from input
MD5 md5 = MD5.Create();
var inputBytes = Encoding.ASCII.GetBytes(input);
var hash = md5.ComputeHash(inputBytes);
// step 2, convert byte array to hex string
var sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
/// <summary>
/// Private IR Call: GetAccounts
/// </summary>
/// <returns></returns>
private async Task<List<AccountHolding>> Balances()
{
//https://github.com/geekpete/py-coinspot-api/blob/master/coinspot/coinspot.py
//var nonce = new Date().getTime();
//var postdata = postdata || { };
//postdata.nonce = nonce;
//var stringmessage = JSON.stringify(postdata);
//var signedMessage = new hmac("sha512", self.secret);
//signedMessage.update(stringmessage);
// 'sign': sign,
//'key': self.key
var nonce = APIHelpers.GetNonce();
var postdata = new postdata { nonce = nonce };
var json = JsonConvert.SerializeObject(postdata);
System.Diagnostics.Debug.WriteLine(json);
var sign = APIHelpers.GetHMACSHAHash(ApiSecret, json, APIHelpers.HMACSHAType.NineBit);
//Do we do this?
//The JavaScript samples seem to hash with MD5 afterwards for double encryption?
sign = CalculateMD5Hash(sign);
RESTClient.Headers.Clear();
RESTClient.Headers.Add("sign", sign);
RESTClient.Headers.Add("key", ApiKey);
try
{
var retVal = await RESTClient.PostAsync<string, postdata>(postdata, "/my/balances");
System.Diagnostics.Debug.WriteLine(retVal);
}
catch (Exception ex)
{
}
throw new NotImplementedException();
}
Die Doco ist sehr knapp! Ich stecke fest.
Ich habe den Fehler gerade nicht handlich, aber es war ein völlig nicht beschreibender Fehler mit Informationen darüber, was schief gelaufen ist. Es war so etwas wie "ungültiger Anruf". Aber ich weiß, dass es meine geposteten Daten zu einem gewissen Grad akzeptiert, denn wenn ich den Namen der Eigenschaft "nonce" in "noncey" ändere, bekomme ich einen aussagekräftigen Fehler zurück, der "no nonce" sagt.
Möchten Sie uns den Fehler mitteilen? – CodingYoshi
Entschuldigung, ich wollte es hinzufügen, aber ich bin gerade von meinem Computer weg. Es war sehr unauffällig. Es war so etwas wie "ungültig" ohne jegliche Erklärung. –
kann bestätigen, Fehler (in JSON) sieht aus wie '{ "Status": "ungültig" }' – wislon