J'essaie d'envoyer un jeton d'access OAuth dans un en-tête HTTP via NSURLConnection mais il ne semble pas envoyer l'en-tête car l'API continue de me donner une erreur en disant que "doit fournir un jeton d'autorisation".
C'est le code que j'utilise:
NSURL *aUrl = [NSURL URLWithSsortingng: @"http://generericfakeapi.com/user/profile"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0]; [request addValue:[NSSsortingng ssortingngWithFormat:@"OAuth %@", token] forHTTPHeaderField:@"Authorization"]; [request setHTTPMethod:@"GET"]; NSError *error = nil; NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error: &error]; NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error]; NSLog(@"Response : %@", JSONDictionary);
Et voici un exemple de la command cURL pour l'API:
curl 'http://generericfakeapi.com/user/profile' -H 'Authorization: OAuth YourAuthToken'
Est-ce que ce n'est pas ce que je fais essentiellement par le biais de NSURLConnection?
Toute aide serait appréciée.
Changez cette ligne:
NSURL *aUrl = [NSURL URLWithSsortingng: @"http://generericfakeapi.com/user/profile"];
À:
NSURL *aUrl = [NSURL URLWithSsortingng: @"http://generericfakeapi.com/user/profile/"];
Apparemment, iOS supprime l'en-tête Authorization s'il n'y a pas de barre oblique à la fin d'une URL. Ce problème m'a littéralement coûté mon sumil pendant deux jours.
Pour moi ça a l'air bien. Êtes-vous sûr d'avoir donné un jeton valide? Essayez d'attraper l'erreur comme ceci
if (error) { NSLog(@"error : %@", error.description); }
Mon code fonctionne bien:
NSURL *jsonURL = [NSURL URLWithSsortingng:[NSSsortingng ssortingngWithFormat:@"http://....ID=%i", cellID]]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:jsonURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120.0]; [request setValue:@"Basic ...." forHTTPHeaderField:@"Authorization"]; NSURLResponse *response; NSError * error = nil; NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
J'espère que cela aide