2010-07-28 56 views
1

我用NSURLConnection這樣接收後,HTTP狀態代碼204緩存數據recevied

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    if ([response isKindOfClass:[NSHTTPURLResponse class]]) 
    { 
     int code = [(NSHTTPURLResponse*)response statusCode]; 
    } 
} 

我得到它的StatusCode是204,然後我送另一個請求的響應,但所有的回答,我收到後,將返回204, howerver tcpdump的顯示服務器返回200 但一分鐘後,它會返回200

我想這可能是有點問題有關高速緩存,howerver我設置的CachePolicy到NSURLRequestReloadIgnoringLocalCacheData,也是我之前新的要求做[[NSURLCahce sharedCache] removeAllCachedResponses]

但它不起作用。 我還是會在第一個204後得到204,如果我在一分鐘後發送請求,200會得到。

這是緩存的錯嗎?接下來我可以做什麼?

PS:204後,如果我發送另一個請求,響應立即到達,似乎它沒有被髮送.howerver,tcpdumps捕獲發送。

回答

0

看看NSURLRequest類的方法「requestWithURL:cachePolicy:timeoutInterval:」。在那裏,您可以將cachePolicy設置爲NSURLRequestCachePolicy值,例如NSURLRequestReloadIgnoringLocalCacheData。這將忽略本地存儲的請求的任何緩存。

NSURLRequest *theRequest = 
    [NSURLRequest requestWithURL:theURL 
        cachePolicy:NSURLRequestReloadIgnoringLocalCacheData 
        timeoutInterval:20.0f]; 
+0

謝謝您的回答,但是我已經試過這種方式,這是行不通的 椎拳崇 – Kensou 2011-01-18 16:07:27