我有 curl 命令,我需要将其传输到 Python 中的请求 POST
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
整数和字符串吗?或者这不是导致此错误的原因?
最佳答案
您是否尝试过 requests.post(url, json=payload)
?.. params=payload
附加查询字符串参数和 json=payload
将 JSON 作为正文 + 内容类型 header 发送
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}',
>>> ...
关于python - 如何将 curl POST 转换为 Python 中的请求 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50027585/