使用AFNetworking重置基本身份验证凭据

use*_*179 8 authentication rest reset ios afnetworking

我正在编写REST客户端(使用AFNetworking),并且需要能够在应用程序的单个实例中触发创建新会话.

换句话说,我想:
1 - 使用服务器
2进行身份验证- 执行一些REST调用
3 - 模拟"注销"
4 - 使用服务器
5 重新进行身份验证- 执行更多REST调用

AFNetworking非常适合进行初始身份验证和REST调用,但我无法弄清楚如何清除会话并"重置"同一实例中的连接.

当我使用ASIHTTP时,我只是做了:
[ASIHTTPRequest clearSession];

有没有办法与AFNetworking做类似的事情?

mat*_*ttt 9

使用AFHTTPClient(请参阅示例项目中的API客户端).

可以使用凭据设置凭据-setAuthorizationHeaderWithUsername:password:.从该HTTP客户端创建的每个请求都将具有AuthorizationHTTP标头,类似于浏览器会话.

当用户注销,或者您想要清除凭据时,请执行此操作-clearAuthorizationHeader.


olu*_*ojo 1

据我所知,休息通话不是基于会话的。这意味着您无法在特定调用中模拟身份验证和注销会话。我认为您可以做的是对对端点进行的每个呼叫进行身份验证。因此,对于每个端点(方法),您都需要对调用者进行身份验证。我认为这就是在一个安静的系统中你可以做的赌注。

  • 嗯,我又玩了一下,看起来刷新 cookie 缓存似乎对我有用。: NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray *cookies = [cookieStorage cookies]; for (NSHTTPCookie *cookies 中的 cookie) { [cookieStorage deleteCookie:cookie]; NSLog(@"已删除 cookie"); } (8认同)