2015-09-13 2 views
1

J'ai été invité à créer une application iOS basée sur Fedena (système de gestion de l'école). Leurs exemples de code API sont en HTML-JS ou RUBY. Ce que je dois faire est de passer les arguments (jeton, URI, etc.) par programmation, et en les envoyant, la requête retournera un fichier XML que je pourrai ensuite analyser et visualiser dans une tableView.Générer une requête POST dans iOS en utilisant AFNetworking

  1. Comment transmettre des paramètres par code, en utilisant AFNetworking?
  2. Comment puis-je récupérer le fichier XML?

Voici un exemple du code API fourni:

<html> 
    <head> 
    xhr.open('GET', fedena_server+"/api/users/"+username); 
    xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
    xhr.setRequestHeader('Authorization', 'Token token="'+token+'"'); 
    xhr.send(); 
    ...... 
+1

Vous ne devriez pas envisager de les envoyer en HTML/JS. Si vous n'avez pas l'habitude d'utiliser une API REST, consultez https://github.com/AFNetworking/AFNetworking L'appel API dont vous avez besoin est clair à partir du code que vous avez partagé, vous devez envoyer une requête Get et ajouter un HTTPHeaderField pour l'authentification. Faites-moi savoir si vous avez besoin d'aide supplémentaire –

+0

@JadFeitrouni Pourriez-vous donner un exemple, concernant mon code? Serait très reconnaissant – Hussein

Répondre

2

D'abord, vous devrez ajouter AFNetworking à votre projet. La meilleure façon de le faire est d'utiliser les informations gousses peuvent être trouvés ici: https://guides.cocoapods.org/using/getting-started.html

le code suivant va chercher la réponse à l'appel API mentionné:

NSString *url = [NSString stringWithFormat:@"%@/api/users/%@",fedenaServer,username]; 
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSString *token = [NSString stringWithFormat:@"Token token=%@",token]; 
[manager.requestSerializer token forHTTPHeaderField:@"Authorisation"]; 
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    // your code to parse the response 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

Vous aurez à faire un peu de recherche pour que tout fonctionne, comme l'analyse de la réponse XML Vous donner plus que cela ferait l'affaire pour vous: P Espérons que ça aide.

+0

Heheh merci beaucoup. Je l'ai essayé et cela a fonctionné. L'analyse du fichier XML est facile maintenant. Merci à toi :) – Hussein