首页 > 解决方案 > 如何在 python 中使用 POST?

问题描述

我想使用 python 发送这个 curl 数据

curl -X POST "http://192.168.12.80:8080/1.0/kb/accounts/a6c08c2c-f3eb-456a-a681-6e5262262e94/payments?paymentMethodId=810d4eae-4668-4c6a-897c-178c041eb67f" -H "accept: application/json" -H "X-Killbill-CreatedBy: demo" -H "authorization: Basic YWRtaW46cGFzc3dvcmQ=" -H "X-Killbill-ApiKey: abcd" -H "X-Killbill-ApiSecret: dcba" -H "Content-Type: application/json" -d "{\"transactionType\":\"AUTHORIZE\",\"amount\":\"$user\",\"currency\":\"INR\",\"transactionExternalKey\":\"$id\"}"

标签: pythonjsonapi

解决方案


步骤1:安装后安装请求包,当您从命令行执行 pip list 时,您应该会看到类似这样的内容

$ pip list
Package      Version
------------ -------------------
certifi      2019.9.11
chardet      3.0.4
Click        7.0
idna         2.8
itsdangerous 1.1.0
MarkupSafe   1.1.1
pip          19.3.1
**requests     2.22.0**
setuptools   41.6.0.post20191030
urllib3      1.25.7
Werkzeug     0.16.0
wheel        0.33.6
wincertstore 0.2

第 2 步:运行以下代码检查 post 请求是否正常,

请在下面找到 python POST 请求的示例,

import requests

url = 'https://www.w3schools.com/python/demopage.php'
myobj = {'somekey': 'somevalue'}

x = requests.post(url, data = myobj)

print(x.text)

Step3:您的代码使用如下所示的请求,

import requests

url = 'http://192.168.12.80:8080/1.0/kb/accounts/a6c08c2c-f3eb-456a-a681-6e5262262e94/payments?paymentMethodId=810d4eae-4668-4c6a-897c-178c041eb67f"'
myobj = {'transactionType': 'AUTHORIZE','amount':'$user','currency':'INR','transactionExternalKey':'$id'}
headers = {'accept': 'application/json','X-Killbill-CreatedBy': 'demo','authorization':'Basic YWRtaW46cGFzc3dvcmQ=','X-Killbill-ApiKey': 'abcd','X-Killbill-ApiSecret': 'dcba', 'Content-Type': 'application/json'}
x = requests.post(url, data = myobj, headers=headers)

print(x.text)

推荐阅读