限制android应用发出的API调用的方法

时间:2019-07-11 20:23:08

标签: android

我正在从android应用访问API,我需要为每次通话付费。它是单词字典API,因此请求通常每次都会更改。哪种方法可以限制每个用户的通话次数(例如按天还是按小时计算),这样我可以确定成本不会爆炸?

我进行API调用的方式是:

import javax.net.ssl.HttpsURLConnection;

URL url = new URL(urlString);
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
if (urlConnection.getResponseCode() == 200) {
    // read the output from the server and do things
}

我认为我可以在sharedPreferences中使用一个变量,在该变量中计算API调用的数量,在一定数量后阻止调用,然后每天重置计数。但是我想知道是否存在针对我在谷歌搜索中错过的事情的最佳实践方法。

如果能够使限制API调用的工作变得更加轻松,我很乐意使用Volley这样的另一个库。

1 个答案:

答案 0 :(得分:0)

对此没有什么想法:

1)使用服务器可配置的值来驱动限制。在您的一次初始API调用中(例如,在应用启动期间)获取此值,然后将其保存在SharedPreferences中。 这是因为将来如果您希望删除或调整限制而无需更改应用代码,便可以这样做。

2)分析这将如何影响用户行为。您是否打算通知用户该功能由于API限制而无法使用?还是要求他们升级以获得无限功能?

3)还要缓存先前的结果(如先前的答案所指出)