我知道如何发出这样的请求:“只有在某个特定日期后文件已被修改时,才能获取该文件”。
HttpWebRequest request = (HttpWebRequest) WebRequest.create(url);
request.IfModifiedSince = lastWriteTime; // lastWriteTime is the time when 
                                         // the local file was last written.
try
 {
    HttpWebResponse response = (HttpWebResponse) request.GetResponse();
    ...但是,假设发生这种情况-
自上次写入以来,本地文件不会被修改,但是当上次从服务器下载它时,文件是不完整的。换句话说,本地文件中的内容长度与服务器上文件中的内容长度不一样。
因此,如果服务器上的内容长度与本地计算机上的内容长度不同,那么我想指定应该从服务器获取文件。
我该怎么做?
发布于 2013-02-12 23:43:06
对于您的场景,只使用HTTP,我将检查文件长度头:
        string length = response.Headers[HttpResponseHeader.ContentLength];因此,您将从一开始就知道这个文件应该有多长。如果它太短,那么它是不完整的,你需要再次下载。
如果您更关心文件的内容,也可以检查MD5:
        string md5 = response.Headers[HttpResponseHeader.ContentMd5];如果坚持请求条件,可以尝试header If -Range。W3C将其描述为:
..。非正式地说,它的意思是‘如果实体没有变化,就把我丢失的部分发给我;否则,就把整个新实体发给我’。..。
检查标头字段定义和HTTP标头字段,看看您的选项是什么。
https://stackoverflow.com/questions/14841444
复制相似问题