1

基本http認証でログインするためのインターフェイスに次のコードを使用しています。

  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

1 に答える 1

4

実際、応答から自動的にCookie(セッションCookieを含む)を保存します。これをクリアするには、以下を使用します。

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

もちろん、最初にCookieを調べて、Cookieを削除するかどうかを確認できます。

于 2012-11-14T10:20:38.290 に答える