NSURLConnection таймаут? - PullRequest
       7

NSURLConnection таймаут?

62 голосов
/ 15 сентября 2009

Я использую это NSURLConnection с делегатами.

nsconnection = [[NSURLConnection alloc] initWithRequest:request
    delegate:self startImmediately:YES];

Проблема в том, что сайт вообще не отвечает. Ничего, просто вращается в браузере с пустой страницей, без сбоев. В моих делегатах я справляюсь с ошибкой, но когда сайт не отвечает, делегатов не вызывают Любые идеи о том, как прервать соединение?

Ответы [ 2 ]

127 голосов
/ 15 сентября 2009

Вы можете указать тайм-аут в вашем NSURLRequest объекте. Один из способов сделать это - создать его с помощью метода requestWithURL:cachePolicy:timeoutInterval:. (Вы можете передать параметр NSURLRequestUseProtocolCachePolicy cachePolicy по умолчанию, если не хотите беспокоиться об этой части.) Тайм-аут представляет собой значение с плавающей запятой в секундах, как и все интервалы времени в iPhone SDK.

Также убедитесь, что ваш делегат NSURLConnection установлен и отвечает на метод connection:didFailWithError:. Соединение всегда вызывает либо этот метод, либо connectionDidFinishLoading: после завершения соединения.

24 голосов
/ 31 августа 2010

Редактировать: Этот ответ сейчас устарел, но на дату ответа был точным.

Я знаю, что эта ветка старая, но я тоже столкнулся с этой проблемой. Это произошло при тестировании приложения вне внутренней сети, где жили сервисы. Служба в конечном итоге прекратит работу, но Apple назначит период в 240 секунд (4 минуты) до истечения времени ожидания. Проверьте эту тему для получения дополнительной информации по этому вопросу.

NSMutableURLЗапрос не подчиняется моему тайм-аутуИнтервал

...