2010-07-23 7 views
12

J'utilise async NSURLConnection pour me connecter à un site web depuis l'iPhone. Poignée didReceiveResponse est activée sur la réponse et je tente d'obtenir tous les cookies, en utilisant allHeaderFields de NSHTTPURLResponseiphone nsurlconnection lire les cookies

Je vois beaucoup de hreader, mais pas Set-Cookie - il ressemble à un simulateur d'iPhone les ignore juste ... Et je suis que les cookies sont présents en réponse - moniteur de réseau montre qu'ils présentent

Je ne l'utilise pas de stockage http - tout ce que je suis en train de faire est d'imprimer pour vous connecter tous les en-tête - et ne voient pas d'info cookies

est-ce Quelqu'un sait-il à propos de ce problème?

MISE À JOUR J'ai fait quelques recherches: si mon site retourne en-tête personnalisé, comme « Custom-tête: valeur » - alors cet en-tête est visible dans le client java, mais pas dans l'iphone ...

merci

Répondre

0

Je ne sais pas si cela compte dans les applications, mais quel est votre paramètre Accepter les cookies pour Safari dans l'application Paramètres. Voyez si changer pour Toujours importe.

Selon certains sites que j'ai vus, un redémarrage complet de l'iPhone est nécessaire pour que ce paramètre ait un effet.

+0

J'utilise un simulateur et n'utilise pas le stockage automatique des cookies. Tout ce que je veux est de voir les en-têtes http bruts - et je les vois tous, mais Cookie – user349302

3

Essayez ceci: dans votre NSMutableURLRequest, vous devez dire à gérer les cookies:

[request setHTTPShouldHandleCookies:YES]; 
+0

J'ai cette ligne, toujours pas de cookies (les deux OUI/NON). La chose étrange est que je vois tous les en-têtes, mais les cookies ... et je veux juste les voir, et gérer myslef – user349302

+0

Où mettez-vous cela? Je pense qu'il devrait être avant que vous définissiez d'autres valeurs sur la demande. Aussi, cf. http://www.cocoadev.com/index.pl?ParsingHTTPHeaders – Don

+0

oui, je l'appelle juste après l'initialisation de la demande. Quoi qu'il en soit: la question n'est pas seulement sur les cookies - Je voudrais voir tous les en-têtes et le système ne le fait pas (voir ma mise à jour dans le message initial) – user349302

27

Essayez de chercher dans le stockage des cookies HTTP partagés:

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]); 
} 

ou si vous travaillez à Swift :

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

cela vient de faire ma journée, merci! –

+0

le mien aussi. réponse fantastique. Merci beaucoup – Katushai

Questions connexes