Как загрузить файл большого размера с помощью AFNetworkingIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как загрузить файл большого размера с помощью AFNetworking

Сообщение Anonymous »

Я работаю над приложением, в котором мне нужно загрузить файл на какой-то сервер, и я использую AFNetworking для загрузки файла.
Все работает нормально, кроме если размер файла небольшой, например 2 МБ, а если больше, сервер ответит мне об ошибке с кодом состояния 500 и не загружает файл.
Ниже приведен код того, как я загружаю.
Ниже приведен код того, как я загружаю.
р>

Код: Выделить всё

[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:lang forHTTPHeaderField:@"Accept-Language"];
[request setValue:authVal forHTTPHeaderField:@"authorization"];
[request setValue:[headerParams objectForKey:@"x-file-name"] forHTTPHeaderField:@"x-file-name"];
[request setValue:[headerParams objectForKey:@"x-convert-document"] forHTTPHeaderField:@"x-convert-document"];
[request setValue:[headerParams objectForKey:@"x-source"] forHTTPHeaderField:@"x-source"];

//convert parameters in to json data

if ([params isKindOfClass:[NSDictionary class]]) {
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:params
options:NSJSONWritingPrettyPrinted
error:&error];
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

[request setURL:[NSURL URLWithString:action]];
[request setTimeoutInterval:200.0];
[request setHTTPMethod:@"POST"];
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:imageData];
NSLog(@"File size is : %.2f MB",(float)imageData.length/1024.0f/1024.0f);

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];

operation.responseSerializer = [AFJSONResponseSerializer serializer];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

NSInteger statusCode = [operation.response statusCode];
NSNumber *statusObject = [NSNumber numberWithInteger:statusCode];
successBlock(responseObject, statusObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}
Строка кода [request setHTTPBody:imageData]; устанавливает NSData изображения.
То же самое работает на Android и работает нормально, но они используют поток: сначала для записи файла в физический путь, а затем с помощью потока для загрузки. Возможно ли это с помощью AFNetworking? или я могу добиться этого, используя другой подход?
Ищу предложения.

Подробнее здесь: https://stackoverflow.com/questions/385 ... networking
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»