Python -- Curl 有效,请求库无效
Python -- Curl works, requests lib doesn't
这在命令行中有效:
curl -H "Content-Type: application/json" -X POST -d '<my data>' http://my_user:my_pass@my_url
这不适用于 python 脚本:
res=requests.post(
'http://my_user:my_pass@my_url',
json='<my data>')
发生的情况是它访问了服务器,但未授权。 REST API 是用 Django Rest Framework 构建的,我得到
{"detail":"Invalid username/password."}
http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/
密码包含这些特殊字符 % ( \
我转义了 \ ,所以它是一个双反斜杠。我还尝试在字符串前面使用 r 和 4 个反斜杠。
我也尝试过 auth=('my_user','my_pass')
不同的转义。
我 运行 它通过 http://curl.trillworks.com/ 但仍然没有用。
明天我要把我的密码改成简单的密码然后测试一下。
如果这不起作用,我将放弃并在末尾添加一个 bash 脚本来运行该 curl 命令。
您需要尝试使用 requests
库设置身份验证,如下所示:
from requests.auth import HTTPBasicAuth
response = requests.post(url, json=payload, auth=HTTPBasicAuth('user', 'pass'))
http://docs.python-requests.org/en/master/user/authentication/#basic-authentication
I escaped \ , so it's a double backslash. I also tried with r in front
of string, and 4 backslashes.
curl 命令中的 \ 是为了转义括号。它不是密码的一部分。
我删除了它,现在可以使用了。
这在命令行中有效:
curl -H "Content-Type: application/json" -X POST -d '<my data>' http://my_user:my_pass@my_url
这不适用于 python 脚本:
res=requests.post(
'http://my_user:my_pass@my_url',
json='<my data>')
发生的情况是它访问了服务器,但未授权。 REST API 是用 Django Rest Framework 构建的,我得到
{"detail":"Invalid username/password."}
http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/
密码包含这些特殊字符 % ( \
我转义了 \ ,所以它是一个双反斜杠。我还尝试在字符串前面使用 r 和 4 个反斜杠。
我也尝试过 auth=('my_user','my_pass')
不同的转义。
我 运行 它通过 http://curl.trillworks.com/ 但仍然没有用。
明天我要把我的密码改成简单的密码然后测试一下。
如果这不起作用,我将放弃并在末尾添加一个 bash 脚本来运行该 curl 命令。
您需要尝试使用 requests
库设置身份验证,如下所示:
from requests.auth import HTTPBasicAuth
response = requests.post(url, json=payload, auth=HTTPBasicAuth('user', 'pass'))
http://docs.python-requests.org/en/master/user/authentication/#basic-authentication
I escaped \ , so it's a double backslash. I also tried with r in front of string, and 4 backslashes.
curl 命令中的 \ 是为了转义括号。它不是密码的一部分。
我删除了它,现在可以使用了。