AFNetworking 2可以存储Cookie
我用AFHTTPClient,似乎它存储在框中的Cookie。 所以当我login时,然后重新加载我的应用程序,cookie自动在应用程序中。 也许我对此感到困惑。 但似乎它按我描述的方式工作。
现在我使用这个代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager POST:path parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { } failure:^(AFHTTPRequestOperation *operation, NSError *error) { }];
但是当我重新启动我的应用程序时,当我尝试请求一些我的API方法时,我得到错误标记的消息。
那么如何使用上面的代码来存储我的cookies。 我使用这个代码来完成我所有的login,注销和其他api服务的请求。 如果我不重新启动它运作良好,但我重新运行似乎cookies从我身上。
我该如何解决这个问题?
我find了这个答案链接,但我不知道如何使用它。
我检查了cookies。
如果我不重新运行应用程序,cookies是一样的:
<NSHTTPCookie version:0 name:"...." value:"....." expiresDate:(null) created:2014-02-27 19:24:29 +0000 (4.15222e+08) sessionOnly:TRUE domain:"...." path:"/" isSecure:FALSE>
但是,如果我重新运行应用程序的cookie被改变。
哦,我明白了,应用程序不保存cookies,似乎我需要写这个function。 你有好的build议怎么做?
从iOS应用程序中持久化Cookie :
没有过期date的Cookies被认为是“仅限会话”,并且在您重新启动应用程序时将被清除。 您可以通过
NSHTTPCookie
的BOOL
属性来检查“session only”情况。 这是标准的cookie,而不是特定于iOS的东西。
AFNetworking不会对引擎盖下的cookies做任何事情。 它使用NSURLConnection,而NSURLConnection使用NSHTTPCookieStorage。
根据你的日志:
<NSHTTPCookie version:0 name:"...." value:"....." expiresDate:(null) created:2014-02-27 19:24:29 +0000 (4.15222e+08) sessionOnly:TRUE domain:"...." path:"/" isSecure:FALSE>
你只有会话cookie(“ sessionOnly:TRUE
”)。
您需要在服务器端添加到期date,以便NSHTTPCookieStorage在会话结束时不会丢弃它们。
这不是什么AFNetworking特定的; 这只是cookies如何工作。