Плохой запрос Binance API с C# в скрипаче

#c# #fiddler #binance

Вопрос:

У меня есть исходящее СООБЩЕНИЕ из другого приложения, и с помощью Fiddler я хочу отправить еще один запрос на открытие заказа. Мне удалось взять необходимые данные из исходного запроса, подписать запрос с помощью HMAC256 и отправить его на Binance, но в ответе я получаю «плохой запрос», и я не понимаю, что здесь не так. Я был бы признателен за любую помощь.

 public static void OnBeforeResponse(Session oSession)
{
    if (oSession.HTTPMethodIs("POST") amp;amp; oSession.uriContains("order"))
    {
        String strBody = oSession.GetRequestBodyAsString();

        //Price 
        int PriceStart = strBody.IndexOf("price=")   6;
        int PriceEND = strBody.IndexOf("amp;", PriceStart);
        string priceStr = strBody.Substring(PriceStart, PriceEND - PriceStart);
        float priceF = float.Parse(priceStr, System.Globalization.CultureInfo.InvariantCulture);

        // SYMBOL
        int symbolStart = strBody.IndexOf("symbol=")   7;
        int symbolend = strBody.IndexOf("BTC", symbolStart);
        string symbol = strBody.Substring(symbolStart, symbolend - symbolStart);

        // Quantity
        int quantStart = strBody.IndexOf("quantity=")   9;
        int quantend = strBody.IndexOf("amp;price", quantStart);
        string quant = strBody.Substring(quantStart, quantend - quantStart);
        float quantity = float.Parse(quant, System.Globalization.CultureInfo.InvariantCulture) * 2;

        // timestamp
        decimal timestamp = Math.Round(Convert.ToDecimal(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds), 0);

        //Sign
        Encoding ascii = Encoding.ASCII;
        string secretKey = "lfaeGkjitNwvyG2lqDueMhSAOzRFlzL73w5pKRCAvSy7YrxyTkvwKCcHBHj...";
        HMACSHA256 hmac = new HMACSHA256(ascii.GetBytes(secretKey));

        //   string query_string_LIMIT = "symbol=" symbol "USDTamp;side=BUYamp;type=LIMITamp;timeInForce=GTCamp;quantity=" quantity "amp;price=" priceF "amp;recvWindow=5000amp;timestamp=" timestamp "amp;signature=";

        string result = "symbol="   symbol   "USDTamp;side=BUYamp;type=MARKETamp;quantity="   quantity   "amp;recvWindow=5000amp;timestamp="   timestamp   "amp;signature=";

        String signature = BitConverter.ToString(hmac.ComputeHash(ascii.GetBytes(result))).Replace("-", "");

        oSession.host = "fapi.binance.com";
        string resultRequest = "symbol="   symbol   "USDTamp;side=BUYamp;type=MARKETamp;quantity="   quantity   "amp;recvWindow=5000amp;timestamp="   timestamp   "amp;signature="   signature;

        byte[] resulByte = System.Text.Encoding.ASCII.GetBytes(resultRequest);

        //oSession.utilReplaceInRequest("api/v3/order","fapi/v1/order?" resultFin);

        oSession.url = oSession.url.Replace("api/v3/order", "fapi/v1/order?"   resultRequest);

        FiddlerApplication.oProxy.SendRequest(oSession.RequestHeaders, resulByte, null);
    }
}
 

Комментарии:

1. Вы должны включить полный ответ в свой вопрос. Может быть, этот форум лучше подходит для вашего случая использования. dev.binance.видение

2. Вот и все, что я получаю ошибку — «Сбой приема скрипача HTTP/1.1 504».