我正在使用遠程存儲數據的iPhone應用程序。該應用僅供我們的客戶使用(無應用商店),我不允許指定應用的上下文。iOS:如何減少FTP連接超時?
我可以告訴你的唯一上下文是該應用程序允許輸入代碼,並下載與該代碼相關的數據。
我們的客戶告訴我們,有時我們需要使用應用程序的地方互聯網不可訪問或太慢。
已經得出的解決方案如下:
我們會嘗試下載一個本地FTP服務器,它實際上只是一個路由器的代碼作爲其名稱共享目錄上的數據,可以通過已知的IP訪問(例如,
ftp://192.168.1.1/some-path
)。如果失敗,它會嘗試從Web服務器下載。
我發現了一個名爲FTPManager的真棒庫,由Nico Kreipke完成。 (click here for its GitHub)
不幸的是,當FTP地址不可用時,大約需要一分鐘超時並轉到第二步。
有沒有人可以幫助減少這種超時?也許快速ping到IP?如果是這樣,該怎麼辦?
感謝您的時間,
蒂亞戈
一些更多的信息
我試着通過Rauru鐵的答案靈感的解決方案。但不幸的是,它並沒有幫助。 用於測試的代碼如下:
NSString *ftp = [NSString stringWithFormat:@"ftp://user:[email protected]%@/sda1/%@", ip, code]; NSURL *url = [NSURL URLWithString:ftp]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0]; NSURLResponse *response = nil; NSError *error = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
我試過幾個超時值,但無濟於事。它總是以超時錯誤結束。但是,下載代碼能夠從路由器的共享目錄下載數據(使用相同的憑證)。
感謝您的幫助。我試過類似的東西,但不幸的是它沒有工作。它不僅會拋出一些異常,當它不會,我不能得到任何數據。我將用我剛剛執行的測試來編輯帖子。 – rtiago42
我忘記了證書:當我找到時間時,我必須重試。目前,這個超時問題已被置於待命狀態,同時我們修復了一些重要的錯誤。再次感謝;) – rtiago42
嘿rtiago,你能告訴我你是怎麼做到的嗎? –