J'ai une application pour iPhone que j'essaie d'obtenir pour parler à une extrémité arrière des rails. J'utilise NSMutableURLRequest pour extraire des données. Tous les appels fonctionnent correctement sur les requêtes GET, mais lorsque j'ai besoin de publier des données, l'application de mes rails ne semble pas pouvoir trouver la session. J'ai posté le code ci-dessous à la fois pour une demande get et une requête POST.NSMutableURLRequest perd des informations sur la session
C'est la requête POST:
//Set up the URL
NSString *url_string = [NSString stringWithFormat:@"https://testserver.example.com/players.xml"];
NSURL *url = [NSURL URLWithString:url_string];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:30];
//To create an object in rails
//We have to use a post request
////This is the format when using xml
NSString *requestString = [[NSString alloc] initWithFormat:@"<player><team_game_id>%@</team_game_id><person_id>%@</person_id></player>", game, person];
NSData *requestData = [NSData dataWithBytes:[requestString UTF8String] length:[requestString length]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:requestData];
NSString *postLength = [NSString stringWithFormat:@"%d", [requestData length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
//For some reason rails will not take application/xml
[request setValue:@"application/xml" forHTTPHeaderField:@"content-type"];
La demande get:
NSString *url_string = [NSString stringWithFormat:@"https://testserver.example.com/people/find_by_passport?passport=%i", passport];
passportString = [[NSMutableString alloc] initWithFormat:@"%i", passport];
NSLog(@"The passport string is %@", passportString);
NSLog(url_string, nil);
NSURL *url = [NSURL URLWithString:url_string];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:30];
Je suis à mon esprit fin ici pour essayer de savoir ce qui se passe de sorte que toute aide serait grandement appréciée .
Donc, je comprends un peu ce que j'essaie de faire ici, mais j'ai l'impression qu'il me manque quelque chose, j'ai sorti le Set-Cookie dans une ficelle, stocké que dans un article de keychain, l'a repris sur la prochaine demande et l'a ajouté au champ d'en-tête http. Est-ce tout ce que j'ai besoin de faire, qu'est-ce que vous me dire par "extraire les cookies à la main"? – drapergeek
À peu près. Aussi, voir modifier. –
En fait, j'ai trouvé la même chose et j'ai essayé d'ajouter le cookie à cette en-tête, mais ça ne semble pas m'aider. – drapergeek