Загрузка изображения с использованием тайм-аута ASIFormDataRequest

У меня возникла странная проблема, я также просмотрел другие решения, а также просмотрел ASIHTTPRequest страницу github.

Я использую библиотеку ASIHTTPRequest и ASIFormDataRequest для загрузки изображений на свой веб-сервер Symfony.

У меня две проблемы:

1) Медленная загрузка

Я не уверен, что это такое, но для загрузки изображения с размером данных изображения = 244671

Я предполагаю, что это около 245 КБ.

Загрузка занимает более 15 секунд.

Мой iPhone подключен к Wi-Fi в районе города.

2) Тайм-аут запроса сервера даже в случае успеха

Я получаю сообщение об ошибке времени ожидания сервера, несмотря на то, что данные полностью загружены, изображение отображается на моем сервере правильно.

Код, который я использую:

// ------------------------------------------------------------------------------
// saving a compressed version of the file to disk to upload the file
// rather than using an uncompressed NSData which will take longer to upload
// ------------------------------------------------------------------------------
[imgData writeToFile:[MediaDirectory mediaPathForFileName:strFilename] atomically:YES];
[MediaDirectory addSkipBackupAttributeToFile:strFilename];

[request setFile:[MediaDirectory mediaPathForFileName:strFilename] withFileName:strFilename andContentType:@"image/png" forKey:@"file"];

Мое изображение не какое-то гигантское, а всего лишь 373 x 500 пикселей.

Любые идеи?

Я не хочу отключать трюк с размером буфера, как это предлагается в системе отслеживания ошибок ASIHTTPRequest, если есть правильный способ решить эту проблему.


person Zhang    schedule 18.12.2012    source источник
comment
может проблема на стороне сервера?   -  person sergio    schedule 18.12.2012
comment
Нет, я так не думаю, у меня есть другое веб-приложение на сервере, которое загружает 3 партии по 1,4 МБ с разрешением изображения 1440 x 900 за 2 минуты без сбоев, как может произойти сбой при загрузке одного файла размером 244 КБ.   -  person Zhang    schedule 18.12.2012


Ответы (1)


Я нашел новую библиотеку под названием MKNetworkKit, которая правильно обрабатывает запрос POST и предоставляет необходимое ключевое поле POST, которое мне нужно установить для моего запроса POSt.

С этого момента я могу использовать MKNetworkKit, если найду его достаточно стабильным.

Я не хотел использовать AFNetworking из-за предыдущего опыта с ошибками при попытке отправить адреса электронной почты POST, а также AFNetworking не позволял мне устанавливать ключ значения POST для запроса POST.

Надеюсь, это поможет любому, кто испытывает ту же проблему.

person Zhang    schedule 21.12.2012