[英]Prevent applet from caching downloaded files
我有一個applet,它可以從網絡上檢索要打印的文件,有時會遇到問題,它返回文件的緩存版本,而不是返回已更改的實際版本。
例如:
URL http = new URL(url +"/"+ m_printfile.get(i));
Doc myDoc = new SimpleDoc(http, myFormat, das);
DocPrintJob job = service.createPrintJob();
job.print(myDoc, aset);
由於我使用SimpleDoc來打印文件,所以我沒有找到使用URLConnection對象的方法,這是我看到的唯一禁用文件緩存的方法。
是否可以使用URL對象執行此操作,或者可以將URLConnection傳遞給SimpleDoc?
1)您可以像這樣將URLConnection
傳遞給SimpleDoc
:
URL http = new URL(url +"/"+ m_printfile.get(i));
URLConnection conn = http.openConnection();
conn.setUseCaches(false);
conn.connect();
Doc myDoc = new SimpleDoc(conn.getInputStream(), myFormat, das);
DocPrintJob job = service.createPrintJob();
job.print(myDoc, aset);
2)避免緩存的骯臟方法是添加一個與隨機無關的數據,如下所示:
URL http = new URL(url +"/"+ m_printfile.get(i) +"?z="+Math.random() );
這樣,每次看起來都像不同的URL,因此緩存不會受到影響...
PS:第二行對我來說似乎很奇怪。( Doc myDoc = new SimpleDoc(http, myFormat, das)
)。 它真的對您有用嗎? 我的意思是, http
不是InputStream
對象。我錯了嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.