Bonjour,
voilà j'ai un problème je n'arrive pas a envoyer ma requete correctement j'ai une reponse Bad request 400.
donc jaurai besoin de votre aide pour voir ce qui ne va pas dans le bout de code :/

c'est en rapport avec l'API de binance. il y a de la doc ici.

je précise que ça fait longtemps que je n'est pas codé ^^

Je ne sais pas du tout si c'est à cause de la signature HMAC qui est mauvaise, ou si c'est le POST qui est mal construit ou même les 2...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
    class BinanceAchat
    {
        private static string akey = "CLE API";
        private static string skey = "SECRET API";
 
        public static string Achat(string Montant)
        {
            long milliseconds = DateTimeOffset.Now.ToUnixTimeMilliseconds();
            var URL = new UriBuilder("https://api.binance.com/api/v3/order");
            string URLTest = "https://api.binance.com/api/v3/order";
 
            var queryString = HttpUtility.ParseQueryString(string.Empty);
            queryString["symbol"] = "SHIBUSDT";
            queryString["side"] = "BUY";
            queryString["type"] = "MARKET";
            queryString["timeInForce"] = "GTC";
            queryString["quoteQty"] = Montant;
            queryString["recvWindow"] = "20000";
            queryString["timestamp"] = milliseconds.ToString();
 
            string Signature = "";
 
            Signature = CreateSignature(queryString.ToString(), skey);
 
            URL.Query = queryString.ToString() + "&signature=" + Signature;
 
            var client = new WebClient();
            client.Headers.Add("X-MBX-APIKEY", akey);
            client.Headers.Add("Accepts", "application/json");
            client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            string HtmlResult = client.UploadString(URLTest , "?" + queryString.ToString());
 
            return HtmlResult;
        }
 
        public static string CreateSignature(string queryString, string secret)
        {
            byte[] keyBytes = Encoding.UTF8.GetBytes(secret);
            byte[] queryStringBytes = Encoding.UTF8.GetBytes(queryString);
            HMACSHA256 hmacsha256 = new HMACSHA256(keyBytes);
            byte[] bytes = hmacsha256.ComputeHash(queryStringBytes);
 
            return BitConverter.ToString(bytes).Replace("-", "").ToLower();
        }
 
    }