2010-12-02 27 views
3

J'ai feuilleté la documentation d'Apple et je n'arrive pas à savoir si les cookies sont sauvegardés/utilisés pour chaque instance de NSURLConnection, ou juste une seule instance. Il semble que les cookies traînent même après la publication de mes instances individuelles de NSURLConnection, mais je ne suis pas sûr que mes tests soient complets. Toute aide à ce sujet serait grandement appréciée.Question sémantique concernant les cookies NSURLRequest et HTTP

Merci d'avance!

+0

Je ne connais pas la réponse, donc je vais ajouter ceci comme commentaire, mais de ce SO fil: http://stackoverflow.com/questions/704985/objective -c-asynchrone-web-request-with-cookies Il semble que vous utilisiez NSCookieStorage pour conserver les cookies. –

+0

Merci pour le lien Darren, très instructif. Citant la [documentation NSHTTPCookieStorage] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/Reference/Reference.html), "NSHTTPCookieStorage implémente un objet singleton (instance partagée) qui gère le stockage des cookies partagés ". Je suppose que les cookies persistent sur les instances NSURLConnection, mais je vais laisser ma question sans réponse jusqu'à ce que quelqu'un puisse offrir une preuve. –

Répondre

2

Cela dépend du système d'exploitation que vous développez. Sur Mac OS X, les cookies sont partagés par tous les processus pour un utilisateur donné. Sur iOS, ils ne le sont pas. Dans les deux cas, les cookies acceptés par une application donnée sont partagés dans le processus de demande et entre les instances de l'application.

Encore une fois, de la documentation de NSHTTPCookieStorage:

NSHTTPCookieStorage implémente un objet singleton (instance partagée) qui gère le stockage des cookies partagé. Ces cookies sont partagés entre toutes les applications et sont synchronisés sur le processus croisé.

(gras moi souligne)

De plus,

iOS Remarque: Les cookies ne sont pas partagées entre les applications iOS.

(gras appuyèrent)