如何通过python 2.7进行基本身份验证?

时间:2019-10-29 08:55:57

标签: python basic-authentication

当网站未响应非HTTP 200时,我希望服务器发送电子邮件。 我使用python创建了一个文件,然后crontab每隔一分钟在服务器中执行此文件。

但是我无法通过python的文件通过基本身份验证访问我的网站之一。

servers = ("133.###.###.###:####","133.###.###.###:9200","https://########.net:1##0")
def checkroot(address):
    global result,error_detected
    conn = httplib.HTTPConnection( address )
    try:
        conn.request( "GET", "/" )
    except:
        result = result + address + "websites are down\n"
        error_detected = True
        return
    response = conn.getresponse()
    if response.status != 200:
        error_detected = True
    result = result + format_result(address,response) + "\n"
    conn.close()

for each in servers:
    checkroot(each)

第三个网站具有基本身份验证。 Python版本是2.75。

我希望能够访问该网站并获得正确的HTTP响应。

1 个答案:

答案 0 :(得分:1)

您需要在连接标头中传递身份验证详细信息,以获取需要基本身份验证的URL:

from base64 import b64encode
# This sets up the https connection
c = HTTPSConnection("www.google.com")
# we need to base 64 encode it
creds = b64encode("username:password")
headers = { 'Authorization' : 'Basic %s' %  creds }
# then connect
c.request('GET', '/', headers=headers)

尽管如此,我还是建议您使用requests库。