Запрос почты PoloniexApi не работает - приводит к неверному ответу команды - PullRequest
0 голосов
/ 11 февраля 2020

Я использовал некоторую комбинацию либо превращения словаря в строку, либо размещения его в URL-адресе непосредственно после API root или в объекте HttpRequestMessage, на других API-интерфейсах, но по какой-то причине с Poloniex по какой-то причине. api Я всегда сталкиваюсь с ошибкой «Неверная команда».

            long timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();

            var bodyDict = new Dictionary<string, string>();
            bodyDict["command"] = "returnBalances";
            bodyDict["nonce"] = timestamp.ToString();
            var stringifiedBodyDict = JsonConvert.SerializeObject(bodyDict);

            var parameterStr = $"command=returnBalances&nonce={timestamp}";

            var str_to_sign = Encoding.UTF8.GetBytes(stringifiedBodyDict);
            var encodedSecretKey = Encoding.UTF8.GetBytes(platformCredentials.secretKey);
            var hashSig = new HMACSHA512(encodedSecretKey).ComputeHash(str_to_sign);
            var signature = BitConverter.ToString(hashSig).Replace("-", "");

            var apiUri = $"https://poloniex.com/tradingApi?{stringifiedBodyDict}";

            var httpClient = new HttpClient();

            var request = new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                RequestUri = new Uri(apiUri),
                Headers =
                {
                    // {HttpRequestHeader.Accept.ToString(), "application/json"},
                    // {HttpRequestHeader.ContentType.ToString(), "application/x-www-form-urlencoded"},
                    {"Key", platformCredentials.apiKey},
                    {"Sign", signature}
                },
                Content = new StringContent(stringifiedBodyDict, Encoding.UTF8, "application/x-www-form-urlencoded")
            };

            var response = await httpClient.SendAsync(request);
            var responseStr = await response.Content.ReadAsStringAsync();

Я пробовал сочетания использования строкового словаря в содержимом apiUri и HttpRequestMessage, только в одном или другом, и пытался различными перестановки комментируемых заголовков. Я не могу пройти через это сообщение об ошибке.

...