我无法在任何地方找到这个问题的直接答案,所以现在是时候最后问:
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 = 200
和notModified = false
。
我没有手动设置If-None-Match
标题,因为我希望Volley会为我追踪它。这是正确的吗?