views:

172

answers:

1

I am running a Post call to a URL and logging into a system. This is working, but after the login, I am attempting to retrieve the cookies – but when I do this:

NSArray *allCookies = [NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL:[NSURL URLWithString:mywebsite"]]; 
NSLog(@"How many Cookies: %d", allCookies.count);

I am getting a response of “How many Cookies: 0”

The problem is that when I close the App and then reopen, it is connecting using the info from my previous login.

What is going on here? Why is it telling me there are zero cookies? How can I get rid of these cookies?

+1  A: 

See if you can find and delete them this way:

NSHTTPCookieStorage * sharedCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray * cookies = [sharedCookieStorage cookies];
for (NSHTTPCookie * cookie in cookies){
    NSLog(@"%@",cookie.domain);
    if ([cookie.domain rangeOfString:@"yourdomain"].location != NSNotFound){
            NSLog(@"deleting");
            [sharedCookieStorage deleteCookie:cookie];
    }
}
Tom Irving
That worked. The IF statement didn't seem to pickup anything, so I just removed it - any possible fallout from removing the IF?
Chris
It will remove all the shared cookies. Keep in mind that cookies are shared across applications.
Tom Irving
They aren't shared across applications, they are only available to your application
Rudiger