我對代表使用此NSURLConnection。NSURLConnection超時?
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
問題是網站根本沒有反應。沒有什麼,只是在瀏覽器中空白頁面旋轉,沒有失敗。在我的代表中,我處理失敗,但是當網站沒有響應時,代表不會被調用。關於如何超時連接的任何想法?
我對代表使用此NSURLConnection。NSURLConnection超時?
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
問題是網站根本沒有反應。沒有什麼,只是在瀏覽器中空白頁面旋轉,沒有失敗。在我的代表中,我處理失敗,但是當網站沒有響應時,代表不會被調用。關於如何超時連接的任何想法?
您可以在NSURLRequest
對象中指定超時。一種方法是通過requestWithURL:cachePolicy:timeoutInterval:
方法構建它。 (如果您不想擔心該部分,您可以傳遞默認的NSURLRequestUseProtocolCachePolicy
cachePolicy參數。)超時值是以秒爲單位的浮點值,基本上是iPhone SDK中的所有時間間隔。
還要確保您的NSURLConnection
的代表已設置並響應connection:didFailWithError:
方法。連接完成後,連接始終調用此方法或connectionDidFinishLoading:
。
編輯︰這個答案現在已經過時,但在回答的日期是準確的。
我知道這個線程是舊的,但我也遇到了這個問題。在服務所在的內部網絡之外測試應用程序時發生這種情況。該服務最終會超時,但蘋果要求在發生超時之前240秒(4分鐘)。查看此主題以獲取關於此事的更多信息。
我相信我通過添加NSCredentials到我的應用程序來解決這個問題。無響應是由於服務器請求身份驗證,我沒有提供。 – Jordan 2010-08-31 22:52:40
這是錯誤的信息!根據http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html%23//apple_ref/occ/cl/NSURLRequest,默認的超時間隔是60秒。 – stigi 2010-12-10 09:27:20
@stigi它看起來像是在引用Mac OS的素材,而ezekielDFM正在談論iOS。 – leukosaima 2010-12-13 19:49:46
的委託做的工作,當通過網絡服務器發送一個錯誤響應不會。在這種情況下,網絡服務器什麼都不發送只是旋轉。我配置請求方法來添加超時。謝謝 – Jordan 2009-09-15 02:48:58
剛剛檢查。它已配置爲超時。 – Jordan 2009-09-15 02:50:24
如果你想嘗試一個NSURLStuff的替代品,我的一位朋友推薦ASIHTTPRequest(谷歌它),這是免費使用,並且看起來很友好,包括超時功能。 – Tyler 2011-03-30 21:31:31