4

AFNetworking で URL から PDF ファイルをダウンロードしようとすると、保存されたファイルのサイズが予想の約半分になります。curl/標準ブラウザ ツールを使用して同じリクエストを行うと、ファイル サイズは正しくなります。

ファイルをオンザフライで解凍して読み取り可能にするにはどうすればよいですか? それとも、AFNetworking はファイルを自動的に圧縮してはいけませんか?

次のリクエスト ヘッダーは、AFNetworking のクライアント クラスによってデフォルトで設定されます。

"Accept-Encoding" = gzip;
"Accept" = application/json";

ファイルを取得する方法は次のとおりです。

AFHTTPClient *client; // already instantiated & configured
NSURLRequest *request = [client requestWithMethod:@"GET" path:requestPath parameters:parameters];
AFHTTPRequestOperation *operation = [client HTTPRequestOperationWithRequest:request success:success failure:failure];

operation.outputStream = [NSOutputStream outputStreamToFileAtPath:localFilePath append:NO];

[self enqueueHTTPRequestOperation:operation];

後で、NSFileManager と外部ツールを介してファイル サイズを確認すると、サイズは予想の 1/2 です。

HTTP ブラウザー クライアントを介して同じ要求を発行すると、応答ヘッダーに、返されたコンテンツが圧縮されていることを示すものは何も表示されません。

サーバーから送信された応答ヘッダー (HTTP ブラウザー拡張ツールで確認):

Transfer-Encoding: chunked
Status: 200 OK
Content-Transfer-Encoding: binary
Content-Disposition: inline; filename="document_sample.pdf"
Connection: keep-alive
Content-Type: application/pdf
Cache-Control: private

期待どおりに保存されるようにファイルをダウンロードするにはどうすればよいですか?

4

0 に答える 0