如何使用Etags与Volley

时间:2014-07-14 17:14:41

标签: android android-volley etag

我无法在任何地方找到这个问题的直接答案,所以现在是时候最后问:

Volley是否负责在GET请求中发送ETag?

在网上进行研究后,我依旧认为确实如此,但我不确定。我有一个使用ETags的API。在我的代码中,我已经考虑了缓存的响应:

String url = Uri.parse(Statics.baseURL + "/users/" + Statics.user.getUser_id() + "/items").buildUpon()
            .appendQueryParameter("token",Statics.token)
            .build().toString();

    // Check to see if the response got cached
    if(requestQueue.getCache().get(url)!=null){
        //response exists
        String cachedResponse = new String(requestQueue.getCache().get(url).data);
        processItems(cachedResponse);
    }

    Request request = new JsonRequest(
            Request.Method.GET,
            url,
            null,
            null,
            new ErrorListener(context)){
        @Override
        protected Response parseNetworkResponse(NetworkResponse response) {
            // Only process the items if the response is modified
            if(!response.notModified)
                processItems(new String(response.data));
            return null;
        }

    };

    requestQueue.add(request);

如果数据被修改,我只想处理来自API的数据,但我总是得到response code = 200notModified = false

我没有手动设置If-None-Match标题,因为我希望Volley会为我追踪它。这是正确的吗?

0 个答案:

没有答案