python 2.7如何通过基本认证?
How to get through basic authentification with python 2.7?
我想让服务器在网站不响应 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 响应。
对于需要基本身份验证的 URL,您需要在连接 headers 中传递您的身份验证详细信息:
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
库,这样更容易。
我想让服务器在网站不响应 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 响应。
对于需要基本身份验证的 URL,您需要在连接 headers 中传递您的身份验证详细信息:
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
库,这样更容易。