我写了一个django web项目并且正在使用一些API调用。我想尝试构建一些机制来处理缓慢和失败的API调用。具体来说,我想尝试API调用三次,增加的调用次数在请求成功时打破了循环。处理这个问题的好方法是什么,或者我可以接受的是什么?以下是我现在的代码。
for x in [0.5, 1, 5]:
try:
r = requests.get(api_url, headers = headers, timeout=x)
break
except:
pass
答案 0 :(得分:0)
您可以使用请求本身提供的异常来处理失败的Api调用。如果出现网络问题,您可以使用ConnectionError
例外。有关详细信息,请参阅this so post。我没有粘贴请求文档的链接并详细解释每个例外,因为之前给出的SO帖子都有您的问题的答案。下面给出了示例代码段
try:
r = requests.get(url, params={'key': 'value'})
except requests.exceptions.ConnectionError as e:
print e
答案 1 :(得分:0)
这概述了我所谈论的程序。单个API请求最终可能会有点不稳定。
migrateup.com/making-unreliable-apis-reliable-with-python /#