-1
サーバーからファイルを取得してJavaでダウンロードするHTTPリクエストがあります。問題は、ダウンロードするファイルが送信されるファイルより2バイト大きいことです。ダウンロードしたファイルのサイズが送信されているサイズより大きい
これは私が応答ファイルを作成する方法です。私は私がダウンロードした完全なファイルを持っているかどうかを確認するために、ヘッダーで送信されたファイルのサイズと比較してファイルサイズを使用し
InputStream input = connection.getInputStream();
byte[] buffer = new byte[128];
int n = - 1;
OutputStream output = new FileOutputStream(downloadsPath + formattedHeaders[0].toString());
while ((n = input.read(buffer)) != -1)
{
output.write(buffer, 0, n);
}
input.close();
output.close();
。サーバーのサイズは問題なく、正しいサイズを取得してヘッダーに追加しています。何とか私はファイルを書いているうちに余分な2バイトを取得します。
この最後の2バイトをファイルから確認できますか?私は、それがHTTPマルチパートフォーマットまたはチャンクエンコードセパレータの区切り文字だと思います。 – Konrad
また、ファイルに両方の(要求およびダウンロードされた)ファイルで異なるエンコーディングが施されている特殊文字があるかどうかを確認します。 – Habin
送信時にファイルサイズが変わるため、ハッシュは問題になりません。 (私がハッシュを比較する前に)。 – user5581557