NSMutableURLRequest, не повинуясь моему timeoutInterval

Я - POST'ing маленькое изображение, таким образом, я хотел бы, чтобы интервал тайм-аута был короток. Если изображение не отправляет за несколько секунд, оно, вероятно, никогда не собирается отправлять. По некоторой неизвестной причине мой NSURLConnection никогда не перестал работать, неважно, как короткий я установил timeoutInterval.

// Create the URL request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
                                 initWithURL:[NSURL URLWithString:@"http://www.tumblr.com/api/write"]
                                 cachePolicy:NSURLRequestUseProtocolCachePolicy
                                 timeoutInterval:0.00000001];

/* Populate the request, this part works fine */

[NSURLConnection connectionWithRequest:request delegate:self];

Мне установили точку останова на - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error но это никогда не инициировано. Мои изображения продолжают отправляться очень хорошо, они обнаруживаются в Tumblr несмотря на крошечное timeoutInterval.

31
задан kubi 29 April 2010 в 13:15
поделиться

1 ответ

На форумах разработчиков Apple есть тема, обсуждающая этот вопрос. По-видимому, в iPhone OS сеттер требует, чтобы timeoutInterval составлял минимум 240 секунд (4 минуты). Это происходит только тогда, когда postBody не пуст (обычно при использовании POST-запроса). Это кажется безумием, но, очевидно, это сделано для того, чтобы убедиться, что запросы покидают систему, даже если для пробуждения интерфейса WWAN (3G) может потребоваться много секунд. 240 секунд кажется довольно много, поэтому они предлагают установить таймер и отменить асинхронное соединение, когда сработает ваш таймер. Я знаю, это кажется глупым, но только так мне удалось получить таймаут для POST запросов... :-(

49
ответ дан 27 November 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: