簡體   English   中英

我正在獲取不存在的文件的標題信息?

[英]I'm getting header info for a file that doesn't exist?

我正在使用從教程中獲得的代碼來查找服務器上文件的“修改日期”信息。 如下...

// create a HTTP request to get the file information from the web server
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:remoteFileURL];
[request setHTTPMethod:@"HEAD"];

NSHTTPURLResponse* response;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];

// get the last modified info from the HTTP header
NSString* httpLastModified = nil;
if ([response respondsToSelector:@selector(allHeaderFields)]) {
    httpLastModified = [[response allHeaderFields] objectForKey:@"Last-Modified"];
}

而且,在大多數情況下,它都有效! WA-HOO。

除了一些文件,它似乎正在返回過時的信息。 實際上,對於至少一個文件,它返回的文件不再存在的日期( Fri, 24 Apr 2015 04:32:55 GMT )。 我從服務器上刪除了它,但是每次運行我的應用程序時它仍會返回該值,就好像文件仍然存在一樣。

我已經檢查並重新檢查remoteFileURL是否指向正確的URL,並且已經確認服務器上不再存在該文件。 而且,就像我說的那樣,對於大多數文件而言,它都能完美運行,因此顯然該系統並未完全損壞。

這是我第一次使用NSMutableURLRequestNSHTTPURLResponse並獲得文件頭之類的經驗。 有什么我不知道的東西可以解釋這個嗎? 可能存在緩存或需要清除的內容嗎?

理想情況下,我該怎么做才能確保我的應用收到了正確的信息?

提前致謝!

發表我的評論作為答案

發生這種情況是因為NSURL的緩存機制。
嘗試添加以下行以刪除所有緩存的數據。

[[NSURLCache sharedURLCache] removeAllCachedResponses];



如果要忽略對微粒請求的緩存,請嘗試以下代碼

 NSURL *url = [NSURL URLWithString:aStrFinalURL]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM