2013-04-17 59 views
2

我已閱讀NSURLConnection將如何自動解壓縮壓縮(壓縮)資源,但無法找到Apple文檔或任何指定定義此解壓縮時的邏輯的官方文字。我也很想知道這將如何與流式數據相關聯。NSURLConnection何時會解壓縮壓縮資源?

的問題

我有使用塊編碼,我相信流文件到我的應用程序的服務器。這是一個WCF服務。順便說一句,我們正在進行流式傳輸,因爲它可以緩解服務器在大量使用中的負載,並且還會因爲我們的文件將會非常大(100 MB)。這些文件可以被壓縮或解壓縮。我認爲在我的情況下,因爲我們正在傳輸數據,Content-Encoding標題不可用,也不是Content-Length。我在回覆中只看到"Transfer-Encoding" = Identity

我正在使用AFNetworking庫將這些文件寫入磁盤,其中AFHTTPRequestOperationinputStreamoutputStream。我也嘗試使用AFDownloadRequestOperation以及類似的結果。

現在,AFNetworking文檔聲明,壓縮文件將自動解壓縮(通過NSURLConnection,我相信)下載後,這不會發生。我將它們寫入我的文檔目錄,沒有任何問題。然而他們仍然在壓縮。我也可以手動解壓縮它們。所以文件沒有損壞。他們不自動解壓縮,因爲我正在傳輸數據,並且因爲沒有指定Content-Encoding

我想知道些什麼:

  1. 爲什麼不能自動解壓我的壓縮文件?是因爲流式傳輸嗎?我知道我可以使用其他庫來解壓縮,但如果可能的話,我想避免這種情況。
  2. NSURLConnection到底什麼時候知道何時解壓下載的文件,自動?我無法在任何地方的文檔中找到它。這是綁定到一個標題值?

任何幫助將不勝感激。

回答

0

NSURLConnection將在響應頭中有適當的Content-Encoding(例如gzip)可用時自動解壓縮。這關係到你的服務器安排。