J'ai une petite application open source. J'ai utilisé [NSString stringWithContentsOfURL]
pour télécharger le code HTML du site Web et vérifier si l'utilisateur a ouvert une session dans Safari.stringWithContentsOfURL cookie jar dans El Capitan
Avant El Capitan tout fonctionnait bien: stringWithContentsOfURL
utilisé sharedCookiesStorage (Safari) et renvoyé le html de la page comme utilisateur connecté.
Mais dans El Capitan cela ne fonctionne pas de cette façon: stringWithContentsOfURL
renvoie le code html de la page, où l'utilisateur n'est pas connecté. Il n'utilise donc plus les cookies de Safari. (Je suis connecté sur cette page dans Safari).
Il y a eu quelques changements dans El Capitan, je devais ajouter tous mes domaines à NSExceptionDomains
en info.plist
, afin qu'il puisse obtenir des données à partir de http: //, mais je ne l'ai pas trouvé de changements dans stringWithContentsOfURL
dans la dernière version OSX .
Quel peut être le problème? Tout allait bien avant de mettre à jour. Peut-être que je pourrais en quelque sorte passer [NSHTTPCookieStorage sharedHTTPCookieStorage]
à [NSString stringWithContentsOfURL]
?
Le code actuel, qui obtient html est:
html = [NSString stringWithContentsOfURL:[NSURL URLWithString: [trackerSettDict objectForKey:@"loginCheckURL"]] encoding: NSUTF8StringEncoding error:&error];
code pour tester l'erreur:
NSError *error;
NSString *html;
html = [NSString stringWithContentsOfURL:[NSURL URLWithString: @"https://google.com"] encoding: NSWindowsCP1251StringEncoding error:&error];
NSLog(@"%@", html);
Merci pour votre réponse, mais comment puis-je utiliser ce cookie jar avec '[NSString stringWithContentsOfURL]'? – goooseman
Et ce code fonctionnera-t-il sur pre El Capitan? – goooseman
Vous pouvez utiliser ces cookies avec 'NSString' en copiant manuellement les cookies de Safari dans le stockage de votre application. Ça ne marche pas sur Yosemite. – takebayashi