2011-08-03 75 views
3

我是iphone開發新手。我正在開發一個iphone應用程序,我正在使用php web服務從服務器下載文件。所以我得到的響應作爲編碼字節,我解碼響應並將其作爲一個文件存儲在iphone中。如何從Web服務iphone下載大文件?

它適用於最大2 MB的小文件。但對於文件而言,下載和解碼需要很長時間。

請任何人告訴我該怎麼做大型文件..

是否有可從Web服務下載大型文件的任何較快的方法???

回答

2

嘗試使用ASIHTTPRequest下載文件。雖然我不能說它是否會讓你的下載速度更快,但它肯定會使它更容易。

+0

感謝您的答覆..我會嘗試這一點,並讓你知道... – itdeeps

+0

更新:不使用ASIHTTPRequest,它現在不被作者維護... –

2

我會推薦使用ASIHTTPRequest庫。它只是下載文件的背景,你可以啓用進度條顯示給用戶。但要小心你的應用程序可能會拒絕,因爲你不應該通過廣域網下載大文件

(蘋果建議每5分鐘不要超過4.5兆數據,你可以通過進入iPhone設置來測試你的應用程序的使用情況,選擇General-> Usage菜單並清除統計信息,然後運行你的應用程序5分鐘,返回到這個屏幕並查看統計信息所說的內容。另外,爲了獲得最準確的數字,你應該關閉任何其他網絡活動(例如電子郵件或MobileMe更新)

蘋果已悄悄地將iPhone 3G的空中下載限制從微不足道的10MB增加到了20MB,其中包括所有應用程序,音樂,播客和更多

+0

感謝您的回覆...什麼是最大下載大小,以避免應用程序拒絕? – itdeeps

1
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.txt"]; 

ASIHTTPRequest

3

嘗試使用

NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

而且還實現委託方法

1. - (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)incrementalData; 

2. - (void)connection: (NSURLConnection*) connection didReceiveResponse: (NSHTTPURLResponse*) response; 

3. - (void) connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite; 
相關問題