gpt4 book ai didi

ios - 即使在重置授权 header 后,NSURLConnection 也会返回缓存的响应

转载 作者:行者123 更新时间:2023-11-28 19:08:46 25 4
gpt4 key购买 nike

这就是用例。

  1. 应用程序运行,授权 header 设置为零。您获得了新数据。

    [_request setValue:nil forHTTPHeaderField:@"Authorization"];

  2. 用户登录后,所有对服务器的请求都像这样发送授权 header 。

    [_request setValue:[NSString stringWithFormat:@"TRUEREST 用户名=%@&session_token=%@&apikey=1234567890",@"用户名",@"session_token"] forHTTPHeaderField:@"Authorization"];

  3. 现在我注销了,现在每个请求都带有授权 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];

最佳答案

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

[_request setHTTPShouldHandleCookies:NO];

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

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

关于ios - 即使在重置授权 header 后,NSURLConnection 也会返回缓存的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17717314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com