首页 文章

NSURLConnection即使在重置授权标记后也返回缓存响应

提问于
浏览
0

所以这就是用例 .

  • 应用程序运行,授权标头设置为nil . 你获得了新的数据 .

[_request setValue:nil forHTTPHeaderField:@“Authorization”];

  • 用户登录,之后所有对服务器的请求都与Authorized Header一起发送 .

[_request setValue:[NSString stringWithFormat:@“TRUEREST username =%@&session_token =%@&apikey = 1234567890”,@“username”,@“session_token”] forHTTPHeaderField:@“Authorization”];

  • 现在我退出,现在每个请求都带有Authorization Header nil值 .

[_request setValue:nil forHTTPHeaderField:@“Authorization”];

但我仍然得到回应,好像我已登录用户?知道这是什么问题吗?

使用如下方式对服务器进行请求

[NSURLConnection sendAsynchronousRequest:_request
                                           queue:[NSOperationQueue mainQueue]
                               completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {}];

我试图通过以下两种方式制作NSMutableURLRequest .

_request = [NSMutableURLRequest requestWithURL:url];

    _request = [[NSMutableURLRequest alloc] initWithURL:url
                                                                cachePolicy:NSURLRequestReloadRevalidatingCacheData
                                                            timeoutInterval:60];

2 回答

  • 1

    您可以在使用请求之前禁用cookie:

    [_request setHTTPShouldHandleCookies:NO];
    

    或者,删除任何cookie - 或相关的cookie - 形成 NSHTTPCookieStorage 单身 .

    但是,您可以使用 NSURLConnection 实现委托 connection:willSendRequestForAuthenticationChallenge: 来大大改善您的代码,您可以在其中完全自定义身份验证处理 .

  • 3

    看起来像服务器问题 . 服务器应发送响应头,告知URL加载系统不缓存响应 .

相关问题