Sto aggiornando un vecchio codice dell'applicazione che utilizzava ASIHTTPRequest
con AFNetworking
. Nel mio caso, sto inviando un banco di dati a API
, questi dati sono di diverso tipo: Immagine e altro.invia immagine insieme ad altri parametri con AFNetworking
ecco il codice adotto finora, l'implementazione di un client API, richiedendo un'istanza condivisa, preparare il dizionario params e inviarlo alla Remote API:
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
}];
Quale sarebbe il caso quando voglio aggiungi un'immagine al dizionario params
?
Con ASIHTTPRequest
, ho usato per fare quanto segue:
NSData *imgData = UIImagePNGRepresentation(anImage);
NSString *newStr = [anImageName stringByReplacingOccurrencesOfString:@"/"
withString:@"_"];
[request addData:imgData
withFileName:[NSString stringWithFormat:@"%@.png",newStr]
andContentType:@"image/png"
forKey:anOtherKey];
ho scavato in AFNetworking
documentazione e hanno trovato che aggiungendo l'immagine in un NSMutableRequest
come questo:
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"];
}];
Come devo mescolare questo insieme in un modo pulito per integrare i miei dati di immagine nella richiesta APIClient
? Grazie in anticipo.
Ciao, dove si fa a mettere la 'key' per l'immagine? Grazie. – Malloc
@ "immagine" è la chiave per qualsiasi immagine che si desidera caricare. –
Ti aiuta? –