2

が圧縮された (zip 形式の) リソースを自動的に解凍する方法を読みましたがNSURLConnection、この解凍がいつ発生するかを定義するロジックを指定する Apple のドキュメントや公式の言葉はどこにも見つかりません。また、これがストリーミング データとどのように関係するのか知りたいと思っています。

問題

チャンクエンコーディングを使用してファイルをアプリにストリーミングするサーバーがあると思います。これは WCF サービスです。ちなみに、ストリーミングを使用するのは、使用頻度の高いときにサーバーの負荷を軽減し、ファイルが非常に大きくなる (数百 MB) ためです。ファイルは圧縮または非圧縮の可能性があります。私の場合、データをストリーミングしているため、Content-Encodingヘッダーが利用できず、Content-Length. "Transfer-Encoding" = Identity私は自分の応答にしか見えません。

AFNetworkingライブラリを使用して、これらAFHTTPRequestOperationのファイルをinputStreamとでディスクに書き込みますoutputStream。私もAFDownloadRequestOperation同様の結果で同様に使用してみました。

現在、ダウンロード後AFNetworkingに圧縮ファイルが自動的に解凍されるとドキュメントに記載されていますがNSURLConnection、これは起こっていません。問題なくドキュメント ディレクトリに書き込みます。それでも、それらはまだ圧縮されています。手動で解凍することもできます。したがって、ファイルは破損していません。データをストリーミングしていて、指定されていないため、自動解凍しませContent-Encodingんか?

知りたいこと:

  1. 圧縮ファイルが自動的に解凍されないのはなぜですか? ストリーミングのせい?後で別のライブラリを使用して解凍できることはわかっていますが、可能であればそれを避けたいと思います。
  2. NSURLConnectionダウンロードしたファイルをいつ自動的に解凍するかを正確に知るのはいつですか? ドキュメントのどこにもこれが見つかりません。これはヘッダー値に関連付けられていますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

NSURLConnectionContent-Encoding適切な(例: gzip) が応答ヘッダーで使用可能になると、自動的に解凍されます。それはあなたのサーバー次第です。

于 2014-04-22T13:25:56.617 に答える