@@ -343,7 +343,7 @@ def open_http(self, url, data=None):
343343 # According to RFC 2616, "2xx" code indicates that the client's
344344 # request was successfully received, understood, and accepted.
345345 if (200 <= errcode < 300 ):
346- return addinfourl (fp , headers , "http:" + url )
346+ return addinfourl (fp , headers , "http:" + url , errcode )
347347 else :
348348 if data is None :
349349 return self .http_error (url , fp , errcode , errmsg , headers )
@@ -438,7 +438,7 @@ def open_https(self, url, data=None):
438438 # According to RFC 2616, "2xx" code indicates that the client's
439439 # request was successfully received, understood, and accepted.
440440 if (200 <= errcode < 300 ):
441- return addinfourl (fp , headers , "https:" + url )
441+ return addinfourl (fp , headers , "https:" + url , errcode )
442442 else :
443443 if data is None :
444444 return self .http_error (url , fp , errcode , errmsg , headers )
@@ -610,7 +610,7 @@ def __init__(self, *args, **kwargs):
610610
611611 def http_error_default (self , url , fp , errcode , errmsg , headers ):
612612 """Default error handling -- don't raise an exception."""
613- return addinfourl (fp , headers , "http:" + url )
613+ return addinfourl (fp , headers , "http:" + url , errcode )
614614
615615 def http_error_302 (self , url , fp , errcode , errmsg , headers , data = None ):
616616 """Error 302 -- relocated (temporarily)."""
@@ -953,14 +953,18 @@ def info(self):
953953class addinfourl (addbase ):
954954 """class to add info() and geturl() methods to an open file."""
955955
956- def __init__ (self , fp , headers , url ):
956+ def __init__ (self , fp , headers , url , code = None ):
957957 addbase .__init__ (self , fp )
958958 self .headers = headers
959959 self .url = url
960+ self .code = code
960961
961962 def info (self ):
962963 return self .headers
963964
965+ def getcode (self ):
966+ return self .code
967+
964968 def geturl (self ):
965969 return self .url
966970
0 commit comments