Еще лучше, каков наилучший способ изящно справиться с проблемой неработающего API стороннего производителя?
что значит API не работает, API возвращает http 404, 500 ...
или вы имеете в виду, что API недоступен?
Прежде всего, я не думаю, что вы можете узнать, не работает ли вообще веб-служба, прежде чем пытаться получить к ней доступ,я рекомендую для первого вы можете сделать это следующим образом:
import httplib
conn = httplib.HTTPConnection('www.google.com') # I used here HTTP not HTTPS for simplify
conn.request('HEAD', '/') # Just send a HTTP HEAD request
res = conn.getresponse()
if res.status == 200:
print "ok"
else:
print "problem : the query returned %s because %s" % (res.status, res.reason)
и для проверки, если API недоступен, я думаю, вам будет лучше сделать попытку поймать:
import httplib
import socket
try:
# I don't think you need the timeout unless you want to also calculate the response time ...
conn = httplib.HTTPSConnection('www.google.com')
conn.connect()
except (httplib.HTTPException, socket.error) as ex:
print "Error: %s" % ex
Вы можете смешать два способа, если хотите что-то более общее, надеюсь, это поможет