我需要对HTTP服务器执行先发制人的基本身份验证,即无需等待401响应就立即进行身份验证。这能用httplib2来完成吗?
编辑:
我通过在请求中添加一个授权头来解决这个问题,正如接受的答案中所建议的那样:
headers["Authorization"] = "Basic {0}".format(
base64.b64encode("{0}:{1}".format(username, password)))发布于 2011-11-22 18:40:43
这也适用于内置的httplib (对于任何希望最小化第三方库/模块的人)。我使用它与Jenkins服务器进行身份验证,使用Jenkins可以为每个用户创建的API令牌。
>>> import base64, httplib
>>> headers = {}
>>> headers["Authorization"] = "Basic {0}".format(
base64.b64encode("{0}:{1}".format('<username>', '<jenkins_API_token>')))
>>> ## Enable the job
>>> conn = httplib.HTTPConnection('jenkins.myserver.net')
>>> conn.request('POST', '/job/Foo-trunk/enable', None, headers)
>>> resp = conn.getresponse()
>>> resp.status
302
>>> ## Disable the job
>>> conn = httplib.HTTPConnection('jenkins.myserver.net')
>>> conn.request('POST', '/job/Foo-trunk/disable', None, headers)
>>> resp = conn.getresponse()
>>> resp.status
302https://stackoverflow.com/questions/7077475
复制相似问题