【发布时间】:2017-12-25 15:49:06
【问题描述】:
我正在尝试将 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 bad requests 错误。
我尝试使用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 错误
【问题讨论】:
-
您在 cURL 命令中指定的标志怎么样?为什么不将它们包含在您的 python 脚本中?
-
400 错误请求可能源于您原来的
payload是无效的 JSON。您的curl命令在 JSON 周围有单引号 ('),但这些只是bash会将整个事情解释为单个参数。 -
@AakashVerma
-k是--insecure,与verify=False相同;-v是--verbose;-H是--header;-d是--data -
你自己的python代码确实有错误。在您的第二个代码中,“也不起作用”是什么意思? 400 或 403 还是其他?
-
@mononoke 你是对的 - 第二个代码 sn-p 实际上并没有打印出响应
标签: python json python-3.x curl python-requests