Название: Помогите с POST запросом. Отправлено: Izosin от Июнь 12, 2018, 21:40 Решил создать свой торговый бот, но никак не могу победить post запросы. Get пошел на УРА, а вот на post полный стопор.
Не могу понять как правильно заполнить заголовок запроса: Код
Выдает ошибку: 40007: Incorrect format parameter 'nonce' Есть рабочий пример написанный на Python, немного видоизменил его что бы он посылал только один запрос, с теми же параметрами что и у меня. Параметр Sign совпадает до последнего символа. Python выдает корректный ответ. Никак не могу понять в чем моя ошибка. Требования сайта звучат следующим образом: Цитировать Authenticated API Для доступа к данному API требуется авторизация и необходимо использовать POST метод. URL — необходимо использовать следующий адрес https://api.exmo.com/v1/{api_name} где api_name - это наименование API метода Авторизация осуществляется с помощью отправки на сервер следующих заголовков: Key — Публичный ключ, его нужно взять настройках профиля пользователя (пример: K-7cc97c89aed2a2fd9ed7792d48d63f65800c447b) Sign — POST данные (param=val¶m1=val1), подписанные секретным ключом методом HMAC-SHA512, секретный ключ также нужно брать в настройках профиля пользователя Название: Re: Помогите с POST запросом. Отправлено: Hellraiser от Июнь 13, 2018, 10:48 Даже не вдаваясь в специфику обмена, сразу видно, что работа с данными неверная. Цитата из букваря:
Цитировать data must be open for reading and must remain valid until the finished() signal is emitted for this reply. А в приведенном коде reqdata разрушается.Название: Re: Помогите с POST запросом. Отправлено: Izosin от Июнь 14, 2018, 14:30 Даже не вдаваясь в специфику обмена, сразу видно, что работа с данными неверная. Цитата из букваря: Что бы я не писал в эту переменную результат выполнения запроса оставался неизменным. Получается для моих задач она не нужна. Но почему то я так и не нашел возможности обойтись без нее. Поэтому она у меня пустая и само разрушаемая.Цитировать data must be open for reading and must remain valid until the finished() signal is emitted for this reply. А в приведенном коде reqdata разрушается.Если что то изменить в заголовке, то меняется ошибка. А вот изменение в переменной Signature, в которую шифруются специальным ключем данные посылаемые на сервер, приводят к этой ошибке. С начало я думал что не правильно шифруются данные. Но проверив в Питоне понял что питон выдает тот же результат. Только сервер на данные питона выдает результат запроса, а на теже данные из моей программы выдает ошибку формата 'nonce'. Что я делаю не так, никак понять не могу. Название: Re: Помогите с POST запросом. Отправлено: Hellraiser от Июнь 14, 2018, 14:46 Тогда WireShark в помощь: отправляем запросы из своей программы и из питоновской. Смотрим разницу, думаем.
P.S. Да, есть перегруженная версия post с константной ссылкой в качестве параметра. Посмотрел исходник - создается QBuffer, копируется информация, reply отвечает за удаление буфера. Название: Re: Помогите с POST запросом. Отправлено: Izosin от Июль 09, 2018, 12:26 Тогда WireShark в помощь: отправляем запросы из своей программы и из питоновской. Смотрим разницу, думаем. P.S. Да, есть перегруженная версия post с константной ссылкой в качестве параметра. Посмотрел исходник - создается QBuffer, копируется информация, reply отвечает за удаление буфера. Спасибо за подсказку хорошей программы. Но к сожалению мне она не помогла. В пакетах какая то каша, наверно весь трафик шифрованный, и между QT и Python нет ничего общего, кроме заголовков в пакетах. |