android-volley – 具有不同POST请求的Android Volley Caching

我正在使用 Android Volley来缓存请求,这在我使用GET时工作正常,但我出于某些原因切换到使用POST.现在我想用不同的POST数据缓存相同的URL.

>请求1 – > URL1,POST数据=“Cat = 1”
>请求2 – > URL1,POST数据=“Cat = 2”
>请求3 – > URL1,POST数据=“Cat = 3”

这可以通过Android Volley来完成

解决方法

因为Volley.Request.getCacheKey()返回的URL在我的情况下是相同的;这不适合我.

相反,我必须覆盖我的子类中的getCacheKey()以返回URL POST(key = Value)

这样我就可以使用不同的POST数据缓存对同一URL发出的所有POST请求.

当您尝试检索缓存的请求时,您需要以相同的方式构造缓存键.

所以这是我的代码的快照:

public class CustomPostRequest extends Request<String> {
    .
    .
    private Map<String,String> mParams;
    .
    .
    public void SetPostParam(String strParam,String strValue)
    {
        mParams.put(strParam,strValue);
    }

    @Override
    public Map<String,String> getParams() {
        return mParams;
    }

    @Override
    public String getCacheKey() {
        String temp = super.getCacheKey();
        for (Map.Entry<String,String> entry : mParams.entrySet())
            temp += entry.getKey() + "=" + entry.getValue();
        return temp;
    }
}

在构造新请求时,您可以使用getCacheKey()在将缓存请求放入请求队列之前先搜索缓存请求.

我希望这有帮助.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...