envoyer l'image avec d'autres paramètres avec AFNetworking
Je mets à jour un vieux code de l'application qui a utilisé ASIHTTPRequest
avec AFNetworking
. Dans mon cas, je suis de l'envoi d'un banc de données à API
ces données sont de types différents: Image et autres.
Voici le code que j'ai adopter jusqu'à présent, la mise en œuvre d'une API client, la demande d'une instance partagée, préparer les params du dictionnaire et de l'envoyer à l'API à distance:
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setValue:@"Some value" forKey:aKey];
[[APIClient sharedInstance]
postPath:@"/post"
parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//some logic
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//handle error
}];
Ce serait le cas lorsque je veux ajouter une image à la params
dictionnaire?
Avec ASIHTTPRequest
j'ai utilisé pour effectuer les opérations suivantes:
NSData *imgData = UIImagePNGRepresentation(anImage);
NSString *newStr = [anImageName stringByReplacingOccurrencesOfString:@"/"
withString:@"_"];
[request addData:imgData
withFileName:[NSString stringWithFormat:@"%@.png",newStr]
andContentType:@"image/png"
forKey:anOtherKey];
J'ai creusé AFNetworking
de la documentation et a constaté qu'ils l'ajout de l'image dans une NSMutableRequest
comme ceci:
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}];
Comment dois-je mélanger l'ensemble sur une belle façon d'intégrer mes données d'image dans le APIClient
demande? Merci à l'avance.
source d'informationauteur Malloc
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé la même AFNetworking télécharger l'image avec un certain nombre de paramètres. Ce code est bien de travailler pour moi. Peut-être que ce sera vous aider
Bonne Chance !!
Avec AFNetworking 2.0.1 ce code a fonctionné pour moi.
Si la réponse JSON est nécessaire d'utiliser:
au lieu de