Преобразуйте команду cURL в Python, используя запросы - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь преобразовать следующую команду cULR в Python:


curl --location --request POST 'api.datamyne.com/frontend/REST/application' \
--header 'Content-Type: application/json' \
--data-raw '{
  "token": "boKnofR06mzldz5eL00ARwa3B9winzpn",
  "idApp":44
}'

У меня есть следующий код Python, но, похоже, он не работает. Есть идеи, как включить необработанные данные в запрос?

import requests

headers = {
    'Content-Type': 'application/json',
    'token': 'boKnofR06mzldz5eL00ARwa3B9winzpn',
    'idApp': '44'
}

response = requests.get('http://api.datamyne.com/frontend/REST/applications', headers=headers)

print(response.content)

1 Ответ

1 голос
/ 30 апреля 2020

Итак, в вашем примере python вы назвали request.get().

Если вы позвоните request.post(), он вместо этого станет запросом POST.

, как для добавления его в тело , вы можете попробовать body переменную:

data =  {
    'token': 'boKnofR06mzldz5eL00ARwa3B9winzpn',
    'idApp': '44'
}

response = requests.post('http://api.datamyne.com/frontend/REST/applications',
                          headers=headers,
                          data = data)

Обновление: это все еще не удается из-за неправильно отформатированного тела.

, чтобы исправить это, я импортировал пакет json и написал:

#load string into a json object
data =  json.loads('{"token": "boKnofR06mzldz5eL00ARwa3B9winzpn", "idApp": 44 }')

# json.dumps outputs a json object to a string.
response = requests.post('https://api.datamyne.com/frontend/REST/application', headers=headers, data=json.dumps(data))
...