1.AFNetworking框架添加cookie
其实,我个人在项目开发的过程中觉得AFNetworking框架它会自动把cookie保存下来的。
通过以下方法可以找到cookie:
[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
并且AFNetworking在下一次请求的时候会去NSHTTPCookieStorage里找到cookie自动带上cookie的,它是不需要手动去设置的。
如果非要去添加某些参数的话,也是有方法的。以下是我复制过来的方法。
- (void)saveCookies{
NSData *savecookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject: savecookiesData forKey: @"sessionCookies"];
[defaults synchronize];
}
- (void)loadCookies{
NSArray *loadcookiesarray = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"sessionCookies"]];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookies in loadcookiesarray){
[cookieStorage setCookie: cookies];
}
}
2.SDWebImage添加cookie
SDWebImage很简单,点开请求图片方法的源代码,大概往里边点三、四层吧。会看到一行代码:
request.HTTPShouldHandleCookies = NO;
把NO改成YES。SDWebImage的cookie就添加好了。
那么有人会问怎么设置 SDWebImage的cookie的内容呢?
其实不用设置的,它会自动 把NSHTTPCookieStorage里的cookie在请求的时候带上的。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
经过一段时间的实践发现我的想法是错误的。它只能自动保存jsessionId,如果要传递其他参数还需要手动添加。
下面是我之后又写的一篇关于cookie的文章,以供大家参考。如有疑问请留言。对于上面的误导深表歉意。
http://blog.csdn.net/larknan/article/details/43639759