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 以查看是否要删除它们。

于 2012-11-14T10:20:38.290 回答