Python请求模块 - API调用

时间:2015-08-20 01:57:36

标签: python django api django-views

我写了一个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

2 个答案:

答案 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 /#