sortarage
@sortarage
Я тучка-тучка-тучка, я вовсе не медведь

Как правильно преобразовать запрос из curl-формата в Python requests?

Утро доброе.

Хочу сделать запрос в API, постоянно получаю ошибку авторизации. Как выглядит запрос в curl-формате:

curl \
-H 'Content-Type: application/json' \
-H 'User-Id: %USER_ID%' \
-H 'Authorization: bearer %USER_API_KEY%' \
-d '{"fields":["info","sum","date"],"orders":[{"name":"date","direction":"DESC"}],"limit":"10"}' \
"https://api.topvisor.ru/v2/json/get/bank/history"

Как выглядит в HTTP-формате:

POST /v2/json/get/bank/history HTTP/1.1
Host: api.topvisor.ru
Content-Type: application/json
User-Id: %USER_ID%
Authorization: bearer %USER_API_KEY%

{"fields":["info","sum","date"],"orders":[{"name":"date","direction":"DESC"}],"limit":"10"}

Как выглядит моя версия для requests:

import requests

url = 'https://api.topvisor.ru/v2/json/get/bank/history'
headers = {
    "Content-type": "application/json",
    "User-Id": "111111",
    "Authorization": "bearer 11111111111111111111"
}

data = {
    "fields": ["info", "sum", "date"],
    "orders": [{
        "name": "date",
        "direction": "DESC"
    }],
    "limit": "10"
}

r1 = requests.get(url, headers=headers, data=data)
r2 = requests.post(url, headers=headers, data=data)

Пробовал get/post (вдруг не понял тип запроса), разные кавычки, менял кодировку файла и т.п., но все равно получаю:
{"error":true,"message":"not exists POST: \"api_key\""}

То есть, даже не ошибка запроса в API, а даже авторизацию пройти не могу.

Чувствую, что что-то не так с синтаксисом или чем-то подобным, но не могу понять с чем именно. Буду благодарен за любой совет :)
  • Вопрос задан
  • 4635 просмотров
Решения вопроса 1
sortarage
@sortarage Автор вопроса
Я тучка-тучка-тучка, я вовсе не медведь
Была внутреняя проблема сервиса (редирект на предыдущую версию API), код заработал, все хорошо :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vasilek-nik
Есть хороший сервис который позволяет преобразовать cUrl запрос в код с использованием модуля requests.
На здоровье, пользуйтесь:
https://curl.trillworks.com
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы