Mat*_*ias 4 iphone cocoa-touch objective-c http-caching nsurlconnection
我发现我调用REST的服务器将cookie传递给我的iPhone.它还使用HTTP Basic Auth.
我有一个应用程序,您可以在其中更改用于身份验证的帐户,但是我发现更改凭据无关紧要,因为didReceiveAuthenticationChallenge从未调用过.
我已经研究了两个可能的修复:
[request setHTTPShouldHandleCookies:NO]我想知道我是否正确理解这一点.我预计NSURLRequestReloadIgnoringCacheData会照顾缓存,但似乎并非如此.
我该如何解决这个问题?
编辑:我只是试着设置shouldHandleCookies到NO,但似乎饼干仍然传递到服务器.
小智 7
罗布,你说得对,这似乎确实存在问题.在某些情况下会设置Cookie,以保持旧的身份验证凭据保持不变.其他人建议您可能需要清除这样的cookie,这解决了我的问题:
- (void)clearCookiesForURL {
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookies = [cookieStorage cookiesForURL:_URL];
for (NSHTTPCookie *cookie in cookies) {
NSLog(@"Deleting cookie for domain: %@", [cookie domain]);
[cookieStorage deleteCookie:cookie];
}
}
Run Code Online (Sandbox Code Playgroud)
看看这个问题,更多的是 didReceiveAuthenticationChallenge,只能在iPhone上调用一次
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |