99
1010try :
1111 from urllib .request import urlopen , Request # for Python 3
12+ from urllib .error import HTTPError
1213except ImportError :
13- from urllib2 import urlopen , Request # for Python 2
14+ from urllib2 import urlopen , Request , HTTPError # for Python 2
1415
1516import json
1617import logging
@@ -30,7 +31,7 @@ def __init__(self, id, message):
3031class Api (object ):
3132
3233 def __init__ (self , api_key , api_version = (3 , 0 , 0 )):
33- if api_key is None or api_key is '' :
34+ if not api_key :
3435 raise pyPostcodeException (
3536 0 , "Please request an api key on http://postcodeapi.nu" )
3637
@@ -39,10 +40,10 @@ def __init__(self, api_key, api_version=(3, 0, 0)):
3940 if (2 , 0 , 0 ) <= api_version < (3 , 0 , 0 ):
4041 self .url = 'https://postcode-api.apiwise.nl'
4142 else :
42- self .url = 'http ://api.postcodeapi.nu'
43+ self .url = 'https ://api.postcodeapi.nu'
4344
4445 def handleresponseerror (self , status ):
45- if status == 401 :
46+ if status in [ 401 , 403 ] :
4647 msg = "Access denied! Api-key missing or invalid"
4748 elif status == 404 :
4849 msg = "No result found"
@@ -63,11 +64,14 @@ def request(self, path=None):
6364 "X-Api-Key" : self .api_key ,
6465 }
6566
66- result = urlopen (Request (
67- self .url + path , headers = headers ,
68- ))
67+ try :
68+ result = urlopen (Request (
69+ self .url + path , headers = headers ,
70+ ))
71+ except HTTPError as err :
72+ self .handleresponseerror (err .code )
6973
70- if result .getcode () is not 200 :
74+ if result .getcode () != 200 :
7175 self .handleresponseerror (result .getcode ())
7276
7377 resultdata = result .read ()
@@ -89,9 +93,9 @@ def request(self, path=None):
8993
9094 def getaddress (self , postcode , house_number = None ):
9195 if (2 , 0 , 0 ) <= self .api_version < (3 , 0 , 0 ):
92- path = '/v2/addresses/?postcode={0 }'
96+ path = '/v2/addresses/?postcode={postcode }'
9397 if house_number is not None :
94- path += '&number={1 }'
98+ path += '&number={house_number }'
9599 resource = ResourceV2
96100 else :
97101 if house_number is None :
0 commit comments