HttpRequest Corps des paramètres dans iOS
Je suis en utilisant le service web pour mon application iOS.
Je sais comment envoyer une requête http de type post via l'URL (http) et obtenir réponse à l'aide de NSURLConnection Délégué.
Mais maintenant, il est une meilleure approche que je suis pour le web service et de passer des paramètres dans le corps de la requête. J'ai regardé pour la bibliothèque sur google et trouvé cette.
Mais le code est un peu difficile pour moi et je suppose qu'il doit être une fonction de la même, ce qui en fait un peu plus facile.
Est-ce là tout? le code de la mesure est en dessous.
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
initWithURL:[NSURL
URLWithString:**WebService URL**]];
[request setHTTPMethod:@"POST"];
[request setValue:@"text/json" forHTTPHeaderField:@"Content-type"];
NSString *jsonString = [NSString stringWithFormat:@"{\n\"username\":\"%@\",\n\"%@\":\"%@\",\n\"%@\":\"%@\",\n\"%@\":%@,\n\"%@\":%@,\n\"version\":%@,\n\"name\":\"%@\"\n}",userName, @"password",pass,@"accessToken",token,@"isOnline",@"True",@"accountType",type,@"False",name];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
jsonString dans ce code est le corps http. Je veux passer des paramètres dans le corps de la requête.
Maintenant, après l'exécution de ce code j'obtiens la valeur null dans NSData variable. alors que mon web service, la fonction renvoie une valeur et aussi il retourne, si l'exécution a été un succès.
ce qui est faux dans mon code.
Merci.
Vous devez vous connecter pour publier un commentaire.
Merci pour vos réponses. J'ai enfin trouvé la solution exacte qui fonctionne tout à fait bien.
J'ai utilisé NSURLConnection délégué et je suis de passage de paramètre dans HTTPBody en json. Je reçois également la réponse en json.
Mais l'envoi de paramètre directement en json n'est pas autorisée dans httprequestbody nous avons donc besoin de la prendre dans NSData et de définir le type de contenu.
Remarque: la définition de type de contenu est très important.
P. S : Vous aurez besoin d'ajouter des fichiers JSon pour la sérialisation json (.h).
Découvrez cette question nsurlrequest corps post et ce http post le type d'encodage
En général, le corps est conforme à la "clé=valeur" format
À votre question, vous avez besoin d'une "clé" pour votre
jsonString
postedJson
est la clé grâce à laquelle vous obtiendrez la valeur de à côté serveur.tels que:
la valeur retournée sera la
jsonString
vous construtedNSString *bodyContents =[NSString stringWithFormat:@"username=%@&password=%@&accessToken=%@&name=%@&version=%@&accountType=%@&isOnline=%@",userName,pass,token,name,@"false",@"false",@"false"];
Il y a une faute de frappe dans votre exemple de code, ce qui expliquerait le résultat nul :