2014-03-26 44 views
0

我有一個.gif圖像,只有在使用Wifi時纔可以訪問。在像mydomain.mysite.com/myimage.gif這樣的特定域上,圖像無法訪問。無法訪問的圖像返回響應

但在我的生產環境中的圖像一些如何變得方便和返回如下回應:

<NSHTTPURLResponse: 0x156c5200> { URL: } { status code: 200, headers { 
    "Accept-Ranges" = bytes; 
    "Cache-Control" = "max-age=86400"; 
    "Content-Length" = 554; 
    "Content-Type" = "image/gif"; 
    Date = "Wed, 26 Mar 2014 14:47:53 GMT"; 
    Etag = "\"030329e4e9c91:11c4\""; 
    "Last-Modified" = "Tue, 09 Jun 2009 13:17:20 GMT"; 
    Server = "Microsoft-IIS/6.0"; 
    "X-Powered-By" = "ASP.NET"; 
} } 

我的目標C代碼如下:

NSHTTPURLResponse *response; 
    NSError *error = nil; 

    NSURL *url = [NSURL URLWithString:currentEnvironment]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

    [NSURLConnection sendSynchronousRequest:request returningResponse:&response 
             error:&error]; 



    if(response != nil) return YES; 

    return NO; 

SOLUTION:

我相信這是解決方案:cachePolicy已實施。

NSURL *url = [NSURL URLWithString:currentEnvironment]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0]; 

    [NSURLConnection sendSynchronousRequest:request returningResponse:&response 
             error:&error]; 
+0

圖像是否可以從緩存中傳出? – rckoenes

+0

這就是我想知道的!但我並不完全緩存圖像。此外,它適用於其他領域,但不適用於生產。 –

+0

默認情況下,iOS將使用設置在http標頭中的緩存策略,除非您告訴它不要使用不使用任何緩存策略。 – rckoenes

回答

1

生產服務器正在發送高速緩存響應的高速緩存控制標頭。解決方法是指定NSURLRequest不緩存,其實現如下:

NSURL *url = [NSURL URLWithString:currentEnvironment]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0]; 

    [NSURLConnection sendSynchronousRequest:request returningResponse:&response 
             error:&error];