如标题所示,我在一个iOS项目中使用AFNetworking,并且该应用程序与服务器通信。当用户登录时,服务器会响应并返回成功标志,响应头包含会话ID。
我想知道AFNetworking是否会自动发送会话ID以便于每个随后的请求,还是我需要以某种方式自己处理?
值得注意的是,我无法控制后端如何验证请求的身份。我只是构建了一个与服务器通信的客户端。
如标题所示,我在一个iOS项目中使用AFNetworking,并且该应用程序与服务器通信。当用户登录时,服务器会响应并返回成功标志,响应头包含会话ID。
我想知道AFNetworking是否会自动发送会话ID以便于每个随后的请求,还是我需要以某种方式自己处理?
值得注意的是,我无法控制后端如何验证请求的身份。我只是构建了一个与服务器通信的客户端。
是的,一旦您成功登录,您的会话ID应该会自动发送,只要在下一个请求被发送之前Cookie不过期(这是一个重要的细节需要确认)。AFNetworking
使用的NSURLConnection
会为您处理这些细节。
在后端,AFNetworking
使用NSURLConnection
,它会自动更新NSHTTPCookieStorage
来存储会话。您可以通过操作cookie存储来随意更改或删除cookies。
例如,如果您想让服务看起来像未登录状态,您可以直接删除与该域关联的会话cookie。我曾与一些服务合作,如果您已经登录并尝试重新登录,它们会出现错误。此外,没有办法检查登录状态。快速解决方法是获取URL的cookies并将其删除:
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: networkServerAddress];
for (NSHTTPCookie *cookie in cookies)
{
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}