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被认为是“仅限会话”,并且在您重新启动应用程序时将被清除。 您可以通过NSHTTPCookieBOOL属性来检查“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如何工作。