私はjava.net.URL.openStream()
を使用してHTTPSリソースにアクセスしています。返されたストリームはいくつかのURLでは不完全です:下の例では、1,105,724バイトのファイルが生成されますが、ブラウザから同じURLにアクセスすると、5,755,858バイトのファイルが生成されます(Content-Encoding
を無効にしても)。java.net.URL.openStream()ストリームが不完全です
そして例外をスローしません。
私には何が欠けていますか?
import static java.nio.file.Files.copy;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Paths;
public class Test {
public static void main(String... args) throws IOException {
try (final InputStream in = new URL(
"https://upload.wikimedia.org/wikipedia/commons/9/95/Germany_%28orthographic_projection%29.svg").openStream()) {
copy(in, Paths.get("germany.svg"));
}
}
}
編集
私は(異なるネットワーク上のが、常にJRE 1.8.0_60/MacのOS X 10.11.4に)このコードに多くの時間をテストしてみた、そして時にはそれが始まる」突然です作業"。
問題のある別のURL("https://upload.wikimedia.org/wikipedia/commons/c/ce/Andorra_in_Europe_%28zoomed%29.svg"
など)に切り替えると、問題を再現することができます。
これはサーバーの問題であることを意味しますか?私はブラウザでそれを見たことがない。
うーん、どのようにその5755858バイトのファイルを測定しましたか?手動でファイルをダウンロードしてそのサイズをチェックするときに得られるものではありません。 – Tunaki
@俊明ナビゲータやカールから手動でダウンロードするとOPと同じサイズになります –
私にとってはうまく動作します...安定したネットワークになっていますか? –