Créer des cookies avec NSURLSession
Salut, je suis en train d'élaborer une application Iphone Dans lequel je veux créer des cookies après la réponse du serveur et de l'utiliser pour une autre demande. Ma demande de réseau ressemble.
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
NSLog(@"sttaus code %i", httpResp.statusCode);
if (error) {
[self.delegate signinWithError:error];
}
else {
[self.delegate signinWithJson:data];
}
}] resume];
Mais je ne sais pas comment faire pour créer des cookies. Je sais que je dois utiliser NSHTTPCookieStorage
mais je ne sais pas comment le définir. Et je veux aussi utiliser des cookies pour une autre demande. Est-il celui qui sait à ce sujet? Besoin d'aide. Merci.
Voir que j'ai essayé de cette façon
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
if(error) {
[self.delegate signinWithError:error];
}
else {
NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
NSHTTPCookie *cookie;
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
NSDictionary* headers = [(NSHTTPURLResponse *)response allHeaderFields];
for(NSString *key in [headers allKeys]) {
NSLog(@"%@ ..PPPP ... %@",key ,[headers objectForKey:key]);
[cookieProperties setObject:[headers objectForKey:key] forKey:key];
}
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
[self.delegate signinWithJson:data];
}
}] resume];
Je suis uniquement intéressé par l'un champ d'en-tête Set-Cookie SSID=kgu62c0fops35n6qbf12anqlo7; path=/
OriginalL'auteur nilkash | 2014-04-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez probablement vous en sortir avec juste l'aide de la
sharedHTTPCookieStorage
pourNSHTTPCookieStorage
, et ensuite utilisersetCookies:forURL:mainDocumentURL:
ou le seulsetCookie:
- ci pourrait être mieux pour vos besoins.Si cela ne fonctionne pas, vous pourriez avoir besoin pour l'installation de l'
NSURLSessionConfiguration
et définir laNSHTTPCookieStorage
Les documents ne sont pas en état, mais le
defaultSessionConfiguration
peut utiliser le magasin partagé de toute façon.Pouvez-vous poster les champs d'en-tête s'il vous plaît, n'hésitez pas à retirer les données importantes
ouais, bien sûr. les publierons
Annonce, vous avez le cookie dans la réponse - je pensais que tu voulais le mettre sur la demande
Les demandes qui utilisent le
sharedSession
va utiliser l'partagé banque de cookies, de sorte qu'ils vont ramasser tous les témoins qui ont un correspondant de domaine et le chemin d'accès.OriginalL'auteur Rich
J'ai fait des recherches beaucoup, mais a trouvé un dans un site web d'une autre langue. La solution est d'ajouter un gestionnaire d'événements vide pour la session de début et de fin:
OriginalL'auteur Carson