Перехват перенаправленного адреса из NSURLConnection - PullRequest
1 голос
/ 09 января 2011

Я работаю над программным обеспечением, которое следит за перенаправлением HTTP, которое динамически рассчитывается сервером в зависимости от параметра. Я не хочу показывать основной сервер в Mobile Safari, а только перенаправленный адрес. Работает следующий код:

    request = [NSMutableURLRequest requestWithURL:originalUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    // Extract the redirected URL
target = [response URL];

Проблема в том, что серверу требуется несколько секунд для ответа. sendSynchronousRequest блокирует приложение на этот раз полностью, что грязно, я даже не могу отобразить анимацию "Занят".

Кто-нибудь знает, как я могу в то же время асинхронно получать перенаправленный адрес без появления сафари с помощью перенаправляющего URL-адреса сервера или отображать какую-то анимацию «Будьте терпеливы» во время sendSynchronousRequest? Какие недостатки имели бы прохождение sendSynchronousRequest в другом потоке?

1 Ответ

3 голосов
/ 09 января 2011

Используйте асинхронное поведение, предоставленное NSURLConnection, и предоставьте соединение с делегатом, который реализует -connection: willSendRequest: redirectResponse:

Затем перейдите к чтению Пять причин, почему синхронныйСеть плоха

...