我像这样使用NSURLConnection
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
if ( [response isKindOfClass:[NSHTTPURLResponse class]])
{
int code = [(NSHTTPURLResponse*)response statusCode];
}
}
我得到一个statusCode为204的响应,然后我发送另一个请求,但是我收到的所有响应都将返回204,而tcpdump显示服务器返回200。 但一分钟后,它将返回200。
我认为缓存可能有问题,我将cachePolicy设置为NSURLRequestReloadIgnoringLocalCacheData,并且在新请求之前我也会[[NSURLCahce sharedCache] removeAllCachedResponses]
。
但它不起作用。 在第一次204之后我仍然会得到204,如果我在一分钟后发出请求,那么200将会获得。
是缓存的错吗?我接下来该怎么办?
PS:在204到达之后,如果我发送另一个请求,响应立即到达,似乎还没有发送过.hverver,tcpdumps捕获发送。答案 0 :(得分:0)
查看NSURLRequest类方法“requestWithURL:cachePolicy:timeoutInterval:”。在那里,您可以将cachePolicy设置为NSURLRequestCachePolicy值,例如NSURLRequestReloadIgnoringLocalCacheData。这将忽略本地存储的请求的任何缓存。
NSURLRequest *theRequest =
[NSURLRequest requestWithURL:theURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:20.0f];