ここで取り上げたのと同じ問題が発生しているように感じました。しかし、私が試したすべてがうまくいくようには見えません。
プログラムは次のようになります。
- ユーザーの資格情報(ユーザー名/パスワード)を求めています
- 次に、サーバーのダウンロード情報を呼び出します。
- 終了したら、一連のユーザーを表示します。ユーザーが1つをクリックすると、そのアカウントのパスワードの入力を求められます。
- 次に、サーバーに別のリクエストを送信し、正しい情報が返されるかどうかを確認します(したがって、指定されたユーザー名/パスワードが正しいことを確認します)
問題は、最後の呼び出しが最初のダウンロードで行った呼び出しと似ている(同じURL、異なるクレデンシャル)ことです。ユーザーが2番目のクレデンシャルに何を入力したかに関係なく、「正しい」情報が返されます。これは応答をキャッシュしているためだと思いますが、それを阻止する方法がわかりません。
接続を確立し、ダウンロードしたデータを返すクラスがあります。そして、接続ごとに新しいクラスを作成します。だから、なぜデータを保存するのかよくわかりません。
次のことを行うNSMutableURLRequestがあります。
[theRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
(私も試しました、NSURLRequestReloadRevalidatingCacheData
そしてNSURLRequestReloadIgnoringLocalAndRemoteCacheData
)
また、関数を実装しました:
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}
- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection {
return NO;
}
最後のものでは、私はそれを完全には理解していません。だから私はYESとNOに疲れました。そして、私はさまざまなNSURLRequestキャッシュポリシーを試しました。
私の問題が何であるかについての助けは非常に役に立ちます。ありがとうございました。