組み込みデバイスで実行されているWebサーバーからバイナリファイルをダウンロードしたい。そのファイルは、そのURLを使用して、基本http認証の後に手動でダウンロードできますhttp://10.10.10.10/config.bin
。...ここで、単純なJavaアプリケーションを使用してこのプロセスを自動化します。基本的なJavaツールを使用して、ファイルをダウンロードすることができました。
URL mlrrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) mlrUrl.openConnection();
con.setRequestMethod("GET");
con.setAllowUserInteraction(false);
con.setDoInput(true);
con.setDoOutput(true);
con.setConnectTimeout(10000);
con.setRequestProperty("Authorization", "Basic " + authStringEnc);
InputStream stream = con.getInputStream();
BufferedInputStream in = new BufferedInputStream(stream);
FileOutputStream file = new FileOutputStream("configDown.bin");
BufferedOutputStream out = new BufferedOutputStream(file);
int i;
while ((i = in.read()) != -1) {
out.write(i);
}
out.flush();
それはうまくいったようです!手動で(ブラウザ-Webインターフェイスによって)ダウンロードされたファイルと比較すると、生成されたファイルの長さは同じですが、両方のバイナリを16進エディタで開いた後は異なっていました。
私の質問:
- 16進コードが異なる理由はありますか?(接続プロパティが欠落している可能性がありますか?)
- apache.commonsパッケージにはcopyUrlToFile-Methodがあります。代わりに、基本的なhttp認証で使用することは可能ですか?
- URLからファイルをダウンロードするための他のJavaライブラリまたはツールはありますか?