我刚成为一个守护神搭档,收到了我的魔鬼。
我在这里读了很多东西:
SHOUTcast_Radio_Directory_API
这里:SHOUTcast_API_License_Agreement
我有一个棘手的问题:我应该缓存他们api调用的结果吗?
如果决定缓存,我将违背shoutcast无线电目录api中的请求:
缓存XML的时间不要超过1天,因为站点ID可以也将更改。
如果我没有缓存任何内容,我将违反shoutcast api许可协议:
请不要敲打服务器。我们请求合理使用并建议您使用本地缓存。
此外,假设我决定缓存结果。由于这些结果是100%基于用户的查询,缓存这些结果不是有点傻吗,因为我的应用程序的用户可能每次都会输入不同的查询?????
为了解决我的问题,我想下载整个shoutcast数据库,每周一次,然后上传到我自己的服务器上。之后,我的应用程序会将所有查询发送到我的服务器,并且根本不会打扰shoutcast的服务器。
不过,这种方法的问题是,我找不到一种方法来同时下载整个shoutcast数据库,就像我们使用icecast的dir.xiph.org/yp.xml一样。
下一步我该怎么办????我该怎么做?
我担心会损害ShoutCast API许可协议并使我的DEVID被吊销:
我们保留对滥用系统的设备取消访问的权利。
这里有人创建过连接ShoutCast目录的应用程序吗?如果是的话,你以前用过哪些方法不被禁止?
最佳答案
为了完整起见,我将用我提出的解决方案来回答我自己的问题。
经过大量研究,我决定创建一个30分钟的缓存,从中检索最后的结果。如果用户更改搜索筛选器,或者缓存过期,则清除所有缓存结果,向ShoutCast的服务器发出新请求并创建新缓存。
代码可以在这里找到:
ShoutcastRadioStationList.java
RadioStationCache.java
关于android - 缓存SHOUTcast API结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34333143/