2009-07-11 1 views
1

here과 같은 문제가있는 것 같았습니다. 하지만 내가 시도하는 모든 것은 효과가없는 것처럼 보입니다. 다음과 같이iPhone 캐싱에서 다운로드 하시겠습니까?

이 프로그램은 간다 : 나는 사용자 자격 증명 (사용자 이름/암호)

  • 에 대한 부탁 해요

    • 그럼 난 정보를 다운로드 서버에 일부 호출 할.
    • 완료되면 사용자가 하나의 계정을 클릭 한 다음 해당 계정의 암호를 묻는 메시지가 표시됩니다.
    • 그런 다음 서버에 다른 요청을하고 올바른 정보가 있는지 확인하십시오. (그러므로 주어진 사용자 이름/암호가 정확하다는 것을 확인하는 것)

    문제는 마지막 호출이 처음 다운로드 할 때와 비슷한 (동일한 URL, 다른 자격 증명) 것입니다. 사용자가 두 번째 자격 증명을 입력하는 것에 관계없이 "올바른"정보가 다시 나타납니다. 응답을 캐싱하기 때문에 이것이라고 생각하지만, 그렇게하지 못하게하는 방법을 알 수는 없습니다.

    나는 연결을 만들고 다운로드 한 데이터를 반환하는 클래스가 있습니다. 그리고 나는 모든 연결에 대해 새로운 수업을합니다. 그래서 저는 왜 그것의 저장 데이터가 확실하지 않습니다.

    나는 NSMutableURLRequest을 가지고있는 나는 다음을 수행하십시오

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

    [theRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
    

    (나는 또한, NSURLRequestReloadRevalidatingCacheDataNSURLRequestReloadIgnoringLocalAndRemoteCacheData을 시도)

    가 나는 또한 기능을 implemnted했습니다

    마지막으로 나는 그것을 완전히 이해하지 못합니다. 그래서 나는 YES와 NO를 지쳤다. 그리고 다양한 NSURLRequest 캐시 정책을 시도했습니다.

    내 문제 일 수있는 도움이 될 것입니다. 고맙습니다.

  • 답변

    2
    그냥 추측

    하지만

    NSURLRequestReloadIgnoringLocalAndRemoteCacheData 
    

    오히려

    NSURLRequestReloadIgnoringLocalCacheData

    보다 차이가

    를 사용하는 것?

    +0

    나는 그것이 존재하는지조차 몰랐지만, 그렇지 않았다. 더 이상 아이디어가 없습니까? – RyanJM

    +1

    NSHTTPCookieStorage는 어떻게됩니까? 두 번째 요청 전에 URL의 쿠키를 삭제하거나 [[NSHTTPCookieStorage sharedStorage] setCookieAcceptPolicy : NSHTTPCookieAcceptPolicyNever]를 설정하십시오. – mjhoy

    +1

    감사합니다 !! [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy : NSHTTPCookieAcceptPolicyNever]를 사용했습니다. 그리고 그것은 내가 필요로했던 정확하게했다. – RyanJM