Aktualizuję stary kod aplikacji, który używał ASIHTTPRequest
z AFNetworking
. W moim przypadku wysyłam zestaw danych do API
, dane te są różne: obraz i inne.Wyślij obraz wraz z innymi parametrami za pomocą AFNetworking
Oto kod I przyjąć tak daleko, wdrożenie klienta API, prosząc udostępnionego instancji przygotować słownika params i wysłać je do zdalnego 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
}];
Jaki byłby przypadek, kiedy chcę dodać zdjęcie do słownika params
?
Z ASIHTTPRequest
, kiedyś wykonać następujące czynności:
NSData *imgData = UIImagePNGRepresentation(anImage);
NSString *newStr = [anImageName stringByReplacingOccurrencesOfString:@"/"
withString:@"_"];
[request addData:imgData
withFileName:[NSString stringWithFormat:@"%@.png",newStr]
andContentType:@"image/png"
forKey:anOtherKey];
I wykopali w AFNetworking
dokumentacji i okazało się, że dodanie obrazu w NSMutableRequest
jak ten:
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"];
}];
Jak należy mieszać tego razem w zgrabny sposób, aby zintegrować moje dane obrazu z żądaniem APIClient
? Z góry z góry.
Hi, gdzie można umieścić 'key' dla obrazu? Thanx. – Malloc
@ "image" jest kluczem do każdego obrazu, który chcesz załadować. –
Czy to pomaga? –