当网站未响应非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响应。
答案 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
库。