user349302
user349302

Reputation: 3821

iphone nsurlconnection read cookies

I am using async NSURLConnection to connect to a web site from iPhone. Handle didReceiveResponse is activated on response and I am trying to get all cookies, by using allHeaderFields from NSHTTPURLResponse

I see many hreader, but no Set-Cookie - it looks like iphone simulator just ignores them... And I am sure cookies are present in response - network monitor shows they present

I do not use any http storage - all that I am trying to do is to print to log all header - and do not see cookies info

Does anybody know about this issue?

UPDATE I have made some research: if my website returns custom header, like "Custom-Header: value" - then this header is visible in java client, but is not in iphone...

thanks

Upvotes: 12

Views: 10992

Answers (3)

Tal Bereznitskey
Tal Bereznitskey

Reputation: 2051

Try to look for it in the shared HTTP cookies storage:

for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies])
{
    NSLog(@"name: '%@'\n",   [cookie name]);
    NSLog(@"value: '%@'\n",  [cookie value]);
    NSLog(@"domain: '%@'\n", [cookie domain]);
    NSLog(@"path: '%@'\n",   [cookie path]);
}

or if working in Swift:

for cookie in HTTPCookieStorage.shared.cookies!
{
   NSLog("name: \(cookie.name)")
   NSLog("value: \(cookie.value)")
   NSLog("domain: \(cookie.name)")
   NSLog("path: \(cookie.path)")
}

Upvotes: 27

Don
Don

Reputation: 3684

Try this: in your NSMutableURLRequest, you should tell it to handle cookies:

[request setHTTPShouldHandleCookies:YES];

Upvotes: 3

Lou Franco
Lou Franco

Reputation: 89232

I don't know if it matters in apps, but what is your Accept Cookies setting for Safari in the Settings app. See if changing to Always matters.

According to some sites I've seen, a complete reboot of the iPhone is required for this setting to have any effect.

Upvotes: 0

Related Questions