Отслеживание хода загрузки ответа на запрос ASIFormDataRequest - PullRequest
3 голосов
/ 06 октября 2010

Я отправляю запрос с данными POST на веб-сервер. Веб-сервер возвращает ответ JSON в случае ошибки или данные самого файла, если ошибок нет.

Я бы хотел отслеживать ход ответа на файл данных. Мой код основан на примере кода из ASIHttpRequest Tutorial

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[request setPostValue:someValue forKey:@"someKey"];
[request setPostValue:someOtherValue forKey:@"someOtherKey"];
[request setShowAccurateProgress:YES];
[request setDownloadProgressDelegate:aProgressView];

request.delegate = self;
[request startSynchronous];

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

Я экспериментировал как с синхронными, так и с асинхронными запросами.

Полагаю, делегат прогресса загрузки не работает, потому что я не загружаю файл как таковой, а просто получаю ответ HTTP на запрос, верно? Каков будет правильный подход для мониторинга прогресса в этом случае?

Заранее спасибо ...

1 Ответ

1 голос
/ 07 октября 2010

Вы запускаете этот код в главном потоке?

В этом случае причина, по которой прогресс не обновляется, заключается в том, что использование синхронного запроса блокирует основной поток, предотвращая обновление пользовательского интерфейса.*

Лучшее решение для этого - использовать асинхронный запрос - вы упомянули, что пробовали, что случилось?

Совет:

Печать ответа httpи проверьте, есть ли у вас Content-Length.Если нет или 0, то это проблема.

NSLog(@"Response headers %@",[request responseHeaders]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...