2012-01-27 52 views
8

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

换句话说,我想:
1 - 与服务器
2身份验证 - 做一些REST调用
3 - 模拟 “退出”
4 - 与服务器
5重新认证 - 做一些更多的REST调用

AFNetworking与初始身份验证和REST调用是伟大的,但我无法弄清楚我将如何清除会话和“重置”在同一实例内的连接。当我使用ASIHTTP时,我只是:
[ASIHTTPRequest clearSession];

有没有办法做类似的AFNetworking?

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

回答

1

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

+8

嗯,我用它更多的发挥各地,它看起来像刷新cookie缓存似乎是在做我的伎俩:NSHTTPCookieStorage * cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage] NSArray * cookies = [cookieStorage cookies]; (NSHTTPCookie * Cookie in cookies){ [cookieStorage deleteCookie:cookie]; NSLog(@“已删除的cookie”); } – user1174179 2012-01-27 19:40:44

+1

这个cookie提示非常有用。谢谢。 – Keller 2012-09-20 16:10:32

+0

cookie清除也是我正在寻找的。 – Harpastum 2012-10-01 22:48:10

9

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

凭证可以设置为-setAuthorizationHeaderWithUsername:password:。从该HTTP客户端创建的每个请求都将具有一个Authorization HTTP标头,类似于浏览器会话。

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

2

更简单。

[request setHTTPShouldHandleCookies:NO];