簡體   English   中英

BITMEX API - 按給定符號取消訂單 - 如何使用 Dart 語言?

[英]BITMEX API - Cancel Order by given Symbol - How to do in Dart Language?

我嘗試使用僅給出訂單符號的 formData 發送取消訂單請求。 但不幸的是,所有其他訂單也從交易所中刪除.. 似乎我添加到 request 的 formData 不起作用。

在 Dart 語言中,有沒有人知道使用 formData 向服務器發送取消請求的正確方法是什么?

非常感謝。

我花了將近 2 天的時間來弄清楚這一點:) 有一天,希望對像我這樣需要的人有用..

這是我將取消訂單發送到 bitmex 的解決方案......用 dart 語言。

您也可以使用此代碼創建有效的簽名和身份驗證..

干杯

    var verb = "DELETE";
    var path = "/api/v1/order";
    var query = "orderID=$ordID";
    if (query != "") path = path + "?" + query;
    return await bitmexHttpService.authRequest(verb: verb, path: path);

Future<String> authRequest({String verb, String path, String data = ""}) async {
    var _nonce = ((DateTime.now()).microsecondsSinceEpoch).toInt();
    var _signature = signature(apiSecret, verb, path, _nonce);
    var headerWithAuthCredentials = createHeader(verb, _nonce, _signature);

    http.Response response;
    try {
      if (verb == "GET")
        response = await http.get(baseUrl + path, headers: headerWithAuthCredentials);
      else if (verb == "POST")
        response = await http.post(baseUrl + path, body: data, headers: headerWithAuthCredentials);
      else if (verb == "DELETE") {
        response = await http.delete(baseUrl + path, headers: headerWithAuthCredentials);
      }

      if (response.statusCode == 200)
        return response.body;
      else {
        var json = jsonDecode(response.body);
        throw Failure(message: json["error"]["message"]);
      }
    } catch (e) {
      print(e.toString());
    }
  }

  Map<String, String> createHeader(String verb, int nonce, _signature) {
    return {
      "api-key": "$apiKey",
      "api-expires": nonce.toString(),
      "api-signature": "${_signature.toString()}",
      'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
      'accept': 'application/json',
      'x-Requested-With': 'XMLHttpRequest',
    };
  }

  signature(String apiSecret, String verb, String path, int nonce) {
    var message = verb + path + nonce.toString();
    var messageEncoded = utf8.encode(message.trim());
    var apiSecretEncoded = utf8.encode(apiSecret);
    var apiSecretAshMacSha256 = new Hmac(sha256, apiSecretEncoded);
    var sign = apiSecretAshMacSha256.convert(messageEncoded);
    return sign;
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM