在python请求库中,不能做授权吗?

2024-09-28 23:35:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python上编写以下代码: http://vestacp.com/docs/api/#add_user

像这样: http://pastebin.com/XdzKKZpg

但我不能授权


Tags: 代码comaddapihttpdocsuserpastebin
2条回答

在最后一行中,auth缺少“=”符号:

req = r.post(vst_hostname, auth(vst_username, vst_hostname), \
        params=postvars, verify=False)

有关详细信息,请参见authentication section in the ^{} documentation

当你这么做的时候

r.post(vst_hostname, auth(vst_username, vst_hostname), params=postvars, verify=False)

你做的相当于

r.post(vst_hostname, data=auth(vst_username, vst_hostname), params=postvars, verify=False)

你想做什么

r.post(vst_hostname, auth=auth(vst_username, vst_hostname), params=postvars, verify=False)

此外,您可以简化这一点。您不需要显式地说HTTPBasicAuth(vst_username, vst_hostname),相反,您可以像这样简单地传递一个元组:

r.post(vst_hostname, auth=(vst_username, vst_hostname), params=postvars, verify=False)

我对PHP代码的工作方式也不熟悉,因此您需要了解这样一个事实:params=postvars创建查询字符串参数,这样做与POST创建查询字符串参数相同

https://188.188.188.88/api?cmd=v-add-user&arg1=...&arg2=...

相反,如果该数据应该在请求的正文中,则您需要执行以下操作:

r.post(vst_hostname, auth=(vst_username, vst_hostname), data=postvars, verify=False)

相关问题 更多 >