У нас есть приложение iOS, которое загружает изображения на сервер с помощью многостраничного сообщения. Все в порядке при использовании Wi-Fi, но в 3G для больших изображений мы получаем сетевые ошибки.Mulipartpost NSURLConnection через проблемы с сетью 3G
На клиенте (iPhone):
Я получил
Домен = NSURLErrorDomain Code = -1021 «потока тело запроса исчерпала»
на основе this post я попытался использовать библиотеку AFNetwork с этим методом, но все же получить тот же точный результат.
На сервере:
У меня есть настройки прокси, чтобы увидеть запрос, и я получаю
«Гнездо сломанной трубы»
обычно после 740Kb были переданы
Итак, что я делаю неправильно? Как я уже говорил, Wi-Fi работает нормально, а на 3G с маленькими изображениями тоже хорошо.
версия кода AFNetwork (прекращает передачу после 600 - 800 кб для больших изображений):
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:self.baseURL];
request = [client multipartFormRequestWithMethod:@"POST"
path:nil
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
for (NSString* partType in self.parts) {
if ([partType isEqualToString:@"jsonpart"]) {
[formData appendPartWithFormData:[self.parts objectForKey:partType] name:@"@json"];
}
else{ //is an image for sure
[formData appendPartWithFileData:[self.parts objectForKey:partType]
name:partType
fileName:[NSString stringWithFormat:@"%@-%d.jpg", partType, [partType hash]]
mimeType:@"image/jpeg"];
}
}
[formData throttleBandwidthWithPacketSize:kAFUploadStream3GSuggestedPacketSize delay:kAFUploadStream3GSuggestedDelay];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[client enqueueHTTPRequestOperation:operation];
Ваш мобильный оператор? Кроме того, вы пытались использовать 'throttleBandwidthWithPacketSize: delay:' с более низкими значениями, чем рекомендуемые значения по умолчанию? –
Да, я попробовал это. Такая же проблема возникает и для разных носителей. – Emilio