Ich versuche Set-Cookie
Header in einer HTTP-Antwort gesendet zuzugreifen:mehrere Set-Cookie-Header von NSHTTPURLResponse Get
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
NSDictionary *headers = [httpResponse allHeaderFields];
NSLog([headers description]);
}
Die HTTP-Server wie so zwei Set-Cookie
Header senden:
Set-Cookie: foo=1; httponly; Path=/
Set-Cookie: bar=2; httponly; Path=/
jedoch Die [HTTPResponse allHeaderFields]
-Schnittstelle kombiniert die mehreren Set-Cookie
-Header in einer durch Kommas getrennten Zeichenfolge:
"Set-Cookie" = "foo=1; httponly; Path=/, bar=2; httponly; Path=/"
This cocoa-dev mailing list message bestätigt meine Beobachtung.
Gibt es eine Schnittstelle, um jede Set-Cookie
Kopfzeile separat zu erhalten oder auf die rohen Kopfzeilen zuzugreifen?
Ich denke, Sie müssen es manuell tun: 'NSArray * setCookiesHeaders = Header [@" "Set-Cookie"] componentsSeparatedByString: @ ","] ', und analysieren, um Sie Informationen abrufen. Die Sache ist, dass die value sind string, und headers sind dictionary, so dass Sie nur einen Schlüssel haben können, und anscheinend kombinieren sie sie mit einem "," wenn es bereits existiert. – Larme
Die Trennung der Zeichenfolge durch Komma ist nicht genug, da der Cookie selbst Kommas enthalten kann auch. – parshap