你可能與httplib
模塊做,但有更簡單的方法,不需要手動驅動的HTTP協議。
(第一外部模塊需要安裝)使用requests
library可能是最簡單的:
import requests
auth = ('someusername', 'somepassword')
response = requests.get(yoururl, auth=auth)
response.raise_for_status()
這將引發一個異常,如果響應不成功或返回404未找到。
然後,您可以使用response.content
(字節字符串)或response.text
(unicode響應)進一步解析響應正文。
使用只是標準庫,使用urllib2
module會是什麼樣子:
import urllib2, base64
request = urllib2.Request(yoururl)
authstring = base64.encodestring('{}:{}'.format('someusername', 'somepassword')).strip()
request.add_header("Authorization", "Basic {}".format(authstring))
response = urllib2.urlopen(request)
if not 200 <= response.getcode() < 400:
# error response, raise an exception here?
content = response.read()
try:
text = content.decode(response.info().getparam('charset', 'utf8'))
except UnicodeDecodeError:
text = content.decode('ascii', 'replace')
其中content
是響應主體的字節串內容,text
將是Unicode值,在一定程度上。
非常好。 '請求'似乎工作得很好。 \ O / – Peter