所以这就是用例。
应用程序运行,授权标头设置为nil。你得到了新的数据。
[_ request setValue:nil forHTTPHeaderField:@“Authorization”];
用户登录,之后所有对服务器的请求都会像授权标题一样发送。
[_ request setValue:[NSString stringWithFormat:@“TRUEREST username =%@& session_token =%@& apikey = 1234567890”,@“username”,@“session_token”] forHTTPHeaderField:@ “授权”];
现在我退出,现在每个请求都带有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];
答案 0 :(得分:3)
您可以在使用请求之前禁用Cookie:
[_request setHTTPShouldHandleCookies:NO];
或者,从NSHTTPCookieStorage
单身人士中删除任何cookie或相关的cookie。
但是,您可以使用NSURLConnection
实现代理connection:willSendRequestForAuthenticationChallenge:
来极大地改进代码,您可以在其中完全自定义身份验证处理。
答案 1 :(得分:1)
看起来像服务器问题。服务器应发送响应头,告知URL加载系统不缓存响应。