我正在通过[NSHTTPCookieStorage setCookie]登录到API。
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/Reference/Reference.html

如果我在浏览器打开的情况下登录,并且已经使用同一用户登录到同一站点,则该应用程序和浏览器都将继续正常运行。

但是,如果我Quit浏览器,再次打开它,然后返回该站点,则cookie已丢失。用户尚未登录。

这是怎么回事,有没有一种方法可以强制应用使用与浏览器不同的Cookie?

或者,如果我们要在应用程序之间“共享” cookie,是否有任何方法可以使用已登录用户的cookie来登录我的应用程序而无需输入用户名/密码?

最佳答案

以下是根据您的请求创建新Cookie的代码:
(未经XCode测试)

// Dictionary of attributes for the new cookie
NSDictionary *newCookieDict = [NSMutableDictionary
                               dictionaryWithObjectsAndKeys:@".example.com", NSHTTPCookieDomain,
                                                            @"Test Cookie", NSHTTPCookieName,
                                                            @"/", NSHTTPCookiePath,
                                                            @"test1234567890", NSHTTPCookieValue,
                                                            @“2011-10-26 00:00:00 -0700", NSHTTPCookieExpires, nil];
// Create a new cookie
NSHTTPCookie *newCookie = [NSHTTPCookie cookieWithProperties:newCookieDict];

// Add the new cookie
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:newCookie];


特别注意字典的最后一个元素

关于objective-c - 我应用的[NSHTTPCookieStorage setCookie]破坏了浏览器的cookie?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7882747/

10-15 07:24
查看更多