【问题标题】:In python requests library, cannot do authorization?在python请求库中,不能做授权?
【发布时间】:2015-04-26 07:45:08
【问题描述】:

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

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

但我无法授权

【问题讨论】:

  • 在您的问题中也包含代码!谢谢!

标签: php python curl python-requests


【解决方案1】:

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

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

请参阅authentication section in the requests documentation 了解更多信息。

【讨论】:

    【解决方案2】:

    当你这样做时

    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)
    

    【讨论】:

      猜你喜欢
      • 2017-12-17
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多