Не могу выполнить POST запрос Python requests
import requests
import json
headers = {'X-API-Key': 'yCDUucvtMxNNIoFaFLmXFfdFyEwBrhztBEGGSN', 'X-Client-ID': 'taxi/park/94a354d1dff2471ebef68b42cd92c136'}
print(requests.post('https://fleet-api.taxi.yandex.net/v1/parks/orders/list', data=json.dumps(headers)).text)
print(requests.post('https://fleet-api.taxi.yandex.net/v1/parks/orders/list', data=headers).text)
print(requests.post('https://fleet-api.taxi.yandex.net/v1/parks/orders/list', headers=headers).text)
Выдает такую ошибку:
>>{"message":"query must be present"}
>>{"message":"request must be in json format"}
>>{"message":"request must be in json format"}
А вод такой же код из документации работает
pload = {'username':'Olivia','password':'123'}
print(requests.post('https://httpbin.org/post',data = pload).text)
Ответы (2 шт):
Автор решения: GrAnd
→ Ссылка
Вроде в документации написано, что (для вашего кода) вызывать надо так:
requests.post(link, data = headers)
Автор решения: CrazyElf
→ Ссылка
Вы пытаетесь передавать одни только заголовки, а требуются ещё и собственно данные. У меня получилось примеры из документации запустить так:
url = 'https://fleet-api.taxi.yandex.net/v1/parks/orders/list'
print(requests.post(url, headers=headers, data=json.dumps(data)).text)
Но не хватает разрешения у вашего ключа API, чтобы получить результат:
{"message":"api key does not have sufficient permissions"}
Пример данных для запроса:
data = {
"limit": 100,
"query": {
"park": {
"car": {
"id": "5011ade6ba054dfdb7143c8cc9460dbc"
},
"driver_profile": {
"id": "33de650c6a1a40bfa78dd981817da866"
},
"id": "ee6f33c4562b4e1f8646d157bd70b2c4",
"order": {
"booked_at": {
"from": "2019-08-08T11:58:01+03:00",
"to": "2019-08-08T11:58:01+03:00"
},
"categories": "econom",
"ended_at": {
"from": "2019-08-08T11:58:01+03:00",
"to": "2019-08-08T11:58:01+03:00"
},
"ids": "c8d40acf182b4b32af72f6ad2029031b",
"payment_methods": "card",
"price": {
"from": "12345.1434",
"to": "12345.1434"
},
"providers": "platform",
"short_ids": 248,
"statuses": "complete"
}
}
}
}