Я разрабатываю приложение для обмена сообщениями, и пользователи также могут отправлять друг другу изображения.
Когда пользователь отправляет более одного изображения, я отправляю их параллельно (Я не жду завершения загрузки первого перед отправкой второго)
До перехода к AFNetworking
мне удалось это сделать с помощью ASIFormDataRequest
, и действительно, если я отправлял 2 изображения, то оба они передавались параллельно и успешно доставлялись другому пользователю.
Когда я пытаюсь сделать это с помощью AFNetworking, я получаю странное поведение.
Я попытаюсь описать случай, когда пользователь 1 также отправил два изображения пользователю 2:
Вот как я отправляю изображение
- (void)sendImageMsgWithPath:(NSString *)path
image:(UIImage *)image
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
progress:(void (^)(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
{
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
// create the request
NSURLRequest *request = [[AppClient sharedClient] multipartFormRequestWithMethod:@"POST" path:path parameters:nil constructingBodyWithBlock:^(id formData)
{
[formData appendPartWithFileData:imageData name:@"image_name" fileName:@"image_name.jpg" mimeType:@"image/jpeg"];
}];
// create the operation
AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:request] autorelease];
// set progress block
[operation setUploadProgressBlock:progress];
//set completion blocks
[operation setCompletionBlockWithSuccess:success failure:failure];
// set it to work in background
[operation setShouldExecuteAsBackgroundTaskWithExpirationHandler:nil];
// add it to the operations queue
[[AppClient sharedClient] enqueueHTTPRequestOperation:operation];
}
***путь для загрузки обоих изображений один и тот же:
path = @"FrontEnd?cmd=sendimage&fromuserid=3&touserid=1&"
он будет добавлен к базовому URL-адресу для создания полного URL-адреса:
@"http://somename.myftp.org:8080/web_proj/FrontEnd?cmd=sendimage&fromuserid=3&touserid=1"
Это изображения, которые я отправил:
изображение1
изображение2
поврежденное изображение