我正在尝试将cURL转换为Python请求但不起作用。
cURL: curl -kv -H 'Content-Type: application/json' 'https://IP-address/api/v1/login' -d '{"username":"api", "password":"APIPassword"}'
我的Python请求代码:
import requests
url = "https://IP-address/api/v1/login"
payload = "'{\"username\":\"api\", \"password\":\"APIPassword\"}'"
headers = {
'Content-Type': "application/json",
'cache-control': "no-cache",
}
response = requests.request("GET", url, headers=headers, data=payload, verify=False)
print(response.text)
哪个不起作用并且给我400个错误请求错误。
我尝试使用https://curl.trillworks.com/
进行转换它给了我以下不起作用的代码。
import requests
url = 'https://IP-address/api/v1/login'
headers = {
'Content-Type': 'application/json',
}
data = '{"username":"api", "password":"APIPassword"}'
output = requests.get(url, data=data, verify=False)
print (output)
有人可以帮我在这里找出问题。
编辑:我已经编辑了第二个脚本来产生输出:这给出了500错误
答案 0 :(得分:2)
使用json
中的requests.post
参数获取json数据。它还负责标题。
data = {"username":"api", "password":"APIPassword"}
response = requests.post(url, json=data, verify=False)
答案 1 :(得分:0)
确保您在有效负载中发送有效JSON的另一种方法是使用json
python库通过json.dumps()
格式化有效负载,该函数会从字符串返回代表JSON对象的字符串。目的。当我需要在有效负载中发送嵌套的json对象时,这对我特别有用。
import json
import requests
url = 'https://sample-url.com'
headers = { 'Content-Type': 'application/json', 'Authorization': f'{auth_key}'}
payload = { "key": "value",
"key": ["v1", "v2"],
"key": {
"k": "v"
}
...
}
r = requests.post(url, headers=headers, data=json.dumps(payload))