2012-01-27 32 views
8

私はAFNetworkingを使用してRESTクライアントを作成しており、アプリケーションの1つのインスタンス内で新しいセッションの作成を開始する機能が必要です。つまり

、私はしたいと思います:
1 - サーバー
2で認証 - いくつかのRESTは
3を呼び出してください -
4 "ログアウト" をシミュレート - 再認証サーバー
5で - いくつかを実行します。より多くのREST呼び出し

AFNetworkingは、初期認証とREST呼び出しを行う上で優れていますが、セッションをクリアして同じインスタンス内で接続を「リセット」する方法を理解できません。

私がASIHTTPを使用したとき、私はちょうどでした:
[ASIHTTPRequest clearSession];

AFNetworkingと同様のことをする方法はありますか?

AFNetworkingで基本認証の資格情報をリセットする

答えて

1

私が知る限り、残りの呼び出しはセッションベースではありません。つまり、特定の通話で認証セッションとログアウトセッションをシミュレートすることはできません。あなたができると思うのは、エンドポイントに対して行われたすべてのコールに対して認証することです。したがって、すべてのエンドポイント(メソッド)に対して、呼び出し元を認証します。私はあなたが安らかなシステムでできることを賭けていると思います。

+8

うーん、私はもう少しそれで遊んとクッキーのキャッシュをフラッシュすることは私のためのトリックをやっているように見えるように見えます。:NSHTTPCookieStorage * cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]。 NSArray * cookies = [cookieStorage cookies]; (Cookie内のNSHTTPCookie * Cookie){ [cookieStorage deleteCookie:cookie]; NSLog(@ "クッキーを削除しました"); } – user1174179

+1

このクッキーのヒントは本当に便利でした。ありがとう。 – Keller

+0

クッキーの消去は、私が探していたものでもありました。 – Harpastum

9

AFHTTPClientを使用してください(サンプルプロジェクトのAPIクライアントを参照)。

資格証明は-setAuthorizationHeaderWithUsername:password:で設定できます。 HTTPクライアントから作成された各リクエストには、ブラウザセッションのような種類のHTTPヘッダーAuthorizationがあります。

ユーザーがログアウトするか、資格情報をクリアする場合は、-clearAuthorizationHeaderを実行します。

2

さらに簡単です。

[request setHTTPShouldHandleCookies:NO]; 
関連する問題