次のコードを使用して、自分が管理しているWebサーバーからファイルをダウンロードしています。
URL url = new URL("http://........");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setDefaultUseCaches(false);
connection.setUseCaches(false);
connection.setRequestMethod("GET");
connection.setDoOutput("true");
connection.connect();
InputStream in = connection.getInputStream();
File dst = new File(".......");
FileOutputStream out = new FileOutputStream(dst);
byte[] buffer = new byte[1024];
int len = 0;
while ((len=in.read(buffer))>0) {
out.write(buffer,0,len);
}
connection.disconnect();
in.close();
out.close();
必要なすべてのトライキャッチを差し引いた。上記のコードは、ファイルを特定の宛先にダウンロードするために正常に機能します。ただし、最新バージョンをダウンロードできません(たとえば、Webサーバーのファイルの内容を変更した場合)
何かが以前にダウンロードしたファイルのある種のキャッシュを保持しているようであり、URLが以前と同じである限り、同じファイルを送り返します。ダウンロード中にデータ接続がアクティブになるため、サービスプロバイダーの場合がこれに該当する可能性があります
私が必要としているのは、コードにターゲットファイルをプロアクティブに更新させる何らかの方法です。私は、ウェブブラウザがこれを行うことができたことを発見しました。Webブラウザーでリンクを入力し、その後コードを再度実行すると、最新バージョンがダウンロードされます。