python http基本驗證
阿新 • • 發佈:2019-02-08
#!usr/bin/env python # -*- coding: utf-8 -*- import urllib2 LOGIN = "" PASSWORD = "" URL = "" REALM = "Secure Archive" def handler_version(url): from urlparse import urlparse#urlparse用來將url拆成各個部分scheme netloc path params query fragment hdlr = urllib2.HTTPBasicAuthHandler()#http驗證類 裡面有使用者名稱和密碼 hdlr.add_password(REALM, urlparse(url)[1], LOGIN, PASSWORD)#將url 使用者名稱 密碼新增進去 opener = urllib2.build_opener(hdlr)#urlopen不支援驗證等高階功能 所以自定義opener urllib2.install_opener(opener)#建立url開啟器 return url def request_version(url): from base64 import encodestring#編碼 req = urllib2.Request(url)#開始請求頁面 b64str = encodestring('%s:%s' % (LOGIN, PASSWORD))[:-1]#將sting轉換成base64-data形式 base64為一種形式的二進位制編碼 req.add_header("Authorization", "Basic %s" % b64str)#新增header標頭 return req for funcType in ('handler', 'request'): print '***Using %s:' % funcType.upper() url = eval('%s_version' % funcType)(URL)#eval 將字串轉換成有效的表示式並返回結果 f = urllib2.urlopen(url) print f.readline() f.close()