Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一个url中检查更新,而不下载整个文件_Java_Android_Caching - Fatal编程技术网

Java 在一个url中检查更新,而不下载整个文件

Java 在一个url中检查更新,而不下载整个文件,java,android,caching,Java,Android,Caching,我已经实现了一个将url缓存到文件系统(Android java)的系统,其工作方式如下: 给定一个url,文件将下载到/one_folder/hash(url).file中 下一个请求该url的请求首先检查该文件是否存在。如果是,则返回文件,否则重复下载 问题是,如果没有实现额外的逻辑,并且url处的文件发生了更改,则永远不会检测到它(因为缓存总是成功的) 我该如何改进呢?是否有更好的系统为缓存文件指定过期日期,并在过期时重新下载 下载文件时,请检查HTTP头,谢谢。在那里,您可能会找到缓

我已经实现了一个将url缓存到文件系统(Android java)的系统,其工作方式如下:

  • 给定一个url,文件将下载到/one_folder/hash(url).file中

  • 下一个请求该url的请求首先检查该文件是否存在。如果是,则返回文件,否则重复下载

问题是,如果没有实现额外的逻辑,并且url处的文件发生了更改,则永远不会检测到它(因为缓存总是成功的)

我该如何改进呢?是否有更好的系统为缓存文件指定过期日期,并在过期时重新下载


下载文件时,请检查HTTP头,谢谢。在那里,您可能会找到缓存规则、内容过期日期等


或者,您可以发出HEAD请求而不是GET请求,只获取http头(而不是内容/文件),并比较上次修改的头或文件大小(内容长度)。

您使用什么方法下载文件?如果您使用http方法,您可以利用缓存控制头来确定客户端版本是否需要更新。是的,我正在使用http,谢谢您的帮助