Not all sent parameters were read; read \'8\' parameter(s) but was sent \'9\'.

I am sending only 8 paramteres with proper field names, still getting the above error can you please advice me on the same. The API says you can either send the data in query or body when I send the data only in body I get symbol was not sent error. Below is the generated request

{ url:
  'https://api.binance.com/api/v3/order?symbol=ETHUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=0.05&price=270&timestamp=1591126276292&signature=',
 method: 'post',
 data:
  '{"symbol":"ETHUSDT","side":"SELL","type":"LIMIT","timeInForce":"GTC","quantity":"0.05","price":"270","timestamp":1591126276292,"signature":""}',
 headers:
  { Accept: 'application/json, text/plain, */*',
    'Content-Type': 'application/x-www-form-urlencoded',
    'X-MBX-APIKEY':
     '',
    'User-Agent': 'axios/0.19.2',
    'Content-Length': 206 }

These parameters looks fine. Please try to leave all of these parameters in the url and put nothing in the body data.

Okay, Now I am getting
{ code: -1022, msg: ‘Signature for this request is not valid.’ }

Here is the my request signing mechanism in nodejs :

const binanceBody = {
            symbol: pair,
            side: side,
            type: type,
            timeInForce: 'GTC',
            quantity: amount,
            price: price,
            timestamp: Date.now(),
        };
const payload = new Buffer(JSON.stringify(binanceBody)).toString('base64');
const signature = crypto.createHmac('sha256', apiSecret).update(payload).digest('hex');

I am using this for signing in different exchanges and it seems to be working in all the exchanges.

@rajshah1609 Please check this repo with many examples of signature in different languages

@dino
Can anyone help in get binance signature using flutter (dart language)?

I’m using the following code but it doesn’t work

int timeStamp = DateTime.now().millisecondsSinceEpoch;
String queryParams = 'timestamp=' + timeStamp.toString();

List<int> key = convert.utf8.encode(this.apiSecret);
crypto.Hmac hmac = new crypto.Hmac(crypto.sha256, key);
List<int> messageBytes = convert.utf8.encode(queryParams);
crypto.Digest digest = hmac.convert(messageBytes);
String signature = hex.encode(digest.bytes);

could you print out the whole request url sent to the server?