2012-11-14 3 views
1

) 기본 HTTP 인증으로 로그인하려면 다음 코드를 인터페이스에 사용하십시오.Restkit Basic 인증 (http 코드 405

RKRequest *loginRequest = [[RKRequest alloc] initWithURL:URL]; 
    loginRequest.timeoutInterval = REST_LOGIN_TIMEOUT; 
    loginRequest.username = username; 
    loginRequest.password = password; 
    loginRequest.authenticationType = RKRequestAuthenticationTypeHTTPBasic; 
    loginRequest.method = RKRequestMethodPOST; 
    loginRequest.onDidLoadResponse = ^(RKResponse *response) { 
     // blabla 
    } 

    ....sending request... 

처음 로그인했을 때 작동합니다. 하지만 다시 동일한 요청을하면 HTTP 상태 코드 405가 표시됩니다. 앱을 다시 시작하면 다음 요청이 다시 작동합니다. 그래서 나는 세션 토큰이나 내부적으로 어떤 데이터를 자동적으로 저장한다고 생각한다. 어떻게 재설정합니까? 어떤 힌트?

답변

4

실제로 응답에서 모든 쿠키 (세션 쿠키 포함)를 자동으로 저장합니다. 이를 지우려면 다음을 사용 : 당신이 그들을 삭제 여부를하려는 어떠했는지

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (NSHTTPCookie *cookie in cookieStorage.cookies) 
{ 
    [cookieStorage deleteCookie:cookie]; 
} 

물론 당신이 첫번째 확인하기 위해 쿠키를 검사 할 수 있습니다.

+0

나는 이것을 시도하고 피드백을 줄 것이다. 감사! – NDY

+0

완벽하게 작동하는 것 같습니다 :) – NDY

+1

RestKit에 이미 빌드를위한 메서드가 있으므로 NSHTTPCookieStorage 메서드를 사용할 필요가 없습니다. loginRequest.requestCache.storagePolicy = RKRequestCachePolicyNone을 사용하십시오. 헤더가 캐시에 저장되는 것을 방지합니다. – flashfabrixx