1

我觉得我遇到了与此处解决的问题相同的问题。但我尝试的一切似乎都不起作用。

程序如下:

  • 我要求提供用户凭据(用户名/密码)
  • 然后我对服务器下载信息进行了一些调用。
  • 完成后,我显示一组用户,用户单击一个,然后要求输入该帐户的密码
  • 然后我向服务器发出另一个请求并检查我是否得到正确的信息(因此验证刚刚给出的用户名/密码是否正确)

问题是,最后一次调用与我在初始下载中所做的调用相似(相同的 url,不同的凭据)。无论用户为第二个凭据输入什么,“正确”信息都会返回。我认为这是因为它正在缓存响应,但我不知道如何阻止它这样做。

我有一个建立连接并返回下载数据的类。我为每个连接创建一个新课程。所以我不太确定它为什么要保存数据。

我有一个 NSMutableURLRequest,我在其中执行以下操作:

 [theRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

(我也试过了,NSURLRequestReloadRevalidatingCacheDataNSURLRequestReloadIgnoringLocalAndRemoteCacheData

我还实现了以下功能:

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection   
                  willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}

- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection {
return NO;
}

最后一个我不完全理解。所以我厌倦了YES和NO。而且我尝试了各种 NSURLRequest 缓存策略。

对我的问题可能有任何帮助都会非常有帮助。谢谢你。

4

1 回答 1

2

只是一个猜测,但会使用

NSURLRequestReloadIgnoringLocalAndRemoteCacheData

而不是

NSURLRequestReloadIgnoringLocalCacheData

有什么不同吗?

于 2009-07-12T02:55:48.787 回答