Как перевести curl POST на запросы POST в Python? - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть команда curl, которую мне нужно передать запросам POST в Python

curl -X POST -H "Content-Type: application/json" -d '{"val1": -1000, "val2": 15, "val3": "20000", "val4": "22"}'
http://some-site:6000?t=1234567890

Я пытался:

payload = {'val1': val1, 'val2': val2, 'val3': val3, 'val4': val4}
r = requests.post(url, params=payload)

r.url возвращает:

 http://some-site:6000?t=1234567890&val1=-1000&val2=15&val3=20000&val4=22

Однако я получаю val1 is not defined ответ от сервера.В команде curl я вижу, что val1 и val2 имеют тип int.Могу ли я отправить с requests целочисленными значениями и строками отдельно или это не является причиной этой ошибки?

1 Ответ

0 голосов
/ 25 апреля 2018

Вы пытались requests.post(url, json=payload)? .. params=payload добавить аргументы строки запроса и json=payload отправляет JSON в качестве заголовка body + type-type

import requests
payload = {'val1': 1, 'val2': 2, 'val3': 3, 'val4': 3}
r = requests.post('http://httpbin.org/post', json=payload)
print(r.json())

>>> {u'args': {},
>>>  u'data': u'{"val3": 3, "val2": 2, "val1": 1, "val4": 3}',
>>>  ...
...