2012-01-27 1 views
8

AFNetworking과 함께 REST 클라이언트를 작성 중이며 응용 프로그램의 단일 인스턴스 내에서 새 세션 생성을 트리거 할 수 있어야합니다. 즉

, 나는 싶습니다 :
1 - 서버
2 인증 - 서버
5 인증 재 - - 시뮬레이션
4 "로그 아웃"- 일부 REST가
3 호출 않는 일부를 수행 더 많은 REST 호출

AFAFNetworking은 초기 인증 및 REST 호출을 만드는 데 적합하지만 세션을 지우고 동일한 인스턴스 내에서 연결을 "재설정"하는 방법을 알 수 없습니다.

ASIHTTP를 사용했을 때 방금했습니다.
[ASIHTTPRequest clearSession];

AFNetworking과 비슷한 작업을 수행 할 수있는 방법이 있습니까?

AFNetworking으로 기본 인증 자격 증명 재설정

답변

1

나머지 통화는 세션 기반이 아닙니다. 특정 통화에서 인증 및 로그 아웃 세션을 시뮬레이트 할 수 없음을 의미합니다. 내가 할 수있는 일은 종점에 대한 모든 호출에 대해 인증하는 것입니다. 따라서 모든 끝점 (메서드)에 대해 호출자를 인증합니다. 나는 그것이 당신이 편안한 시스템에서 할 수있는 선택이라고 생각합니다.

+8

흠 내가 좀 더 함께 주위를 연주하고 나를 위해 트릭을 수행 할 것으로 보인다 쿠키 캐시를 플러시 것 같습니다 : NSHTTPCookieStorage * cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage] NSArray * cookies = [cookieStorage cookies]; 쿠키의 NSHTTPCookie * 쿠키에 대한 { [cookieStorage deleteCookie : cookie]; NSLog (@ "deleted cookie"); } – user1174179

+1

이 쿠키 팁은 정말 유용했습니다. 감사. – Keller

+0

쿠키 삭제는 내가 찾고있는 것이 었습니다. – Harpastum

9

AFHTTPClient을 사용하십시오 (예제 프로젝트의 API 클라이언트 참조).

자격 증명은 -setAuthorizationHeaderWithUsername:password:으로 설정할 수 있습니다. 해당 HTTP 클라이언트에서 생성 된 각 요청에는 브라우저 세션과 비슷한 종류의 HTTP 헤더 Authorization이 있습니다.

사용자가 로그 아웃하거나 자격 증명을 지우려면 -clearAuthorizationHeader을 입력하십시오.

2

더욱 간단합니다.

[request setHTTPShouldHandleCookies:NO]; 
관련 문제