cURLをPythonリクエストに変換しようとしていますが、機能しません。cURLをPythonリクエストに変換するエラー
にcURL:curl -kv -H 'Content-Type: application/json' 'https://IP-address/api/v1/login' -d '{"username":"api", "password":"APIPassword"}'
私のPythonのリクエストコード:仕事と私は400不正な要求エラーを与えていない
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)
。
私は私のいずれかに動作しません。次のコードを与える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)
誰でも問題を特定できますか?
編集:私は、出力を生成する第二のスクリプトを編集した:JSONデータ用requests.post
でjson
パラメータを使用し
cURLコマンドで指定したフラグはどうですか?なぜあなたのpythonスクリプトにそれらを含めていないのですか? –
400の悪い要求はおそらく、元の 'payload'が無効なJSONであることに起因しています。あなたの 'curl'コマンドはJSONの回りに一重引用符(' ')を持ちますが、それらは単なる引数としてすべてを解釈する' bash'です。 – Kendas
@AakashVerma '-k'は' --insecure'です。これは 'verify = False'と同じです。 '-v'は' --verbose'です。 '-H'は' --header'です。 '-d'は' --data'です – Kendas