Я нахожусь за прокси-сервером, и я использую следующий код для получения данных из URL:
private static String getData(String address)throws Exception
{
System.setProperty("java.net.useSystemProxies","true");
Date d = new Date();
String finalAdress = address+"?x="+d.getTime();
URL url = new URL(finalAdress);
System.out.println(finalAdress);
InputStream html = null;
HttpsURLConnection con = (HttpsURLConnection)url.openConnection();
con.setUseCaches(false);
con.setDefaultUseCaches(false);
con.setRequestMethod("GET");
con.addRequestProperty("Cache-Control", "no-cache");
//con.addRequestProperty("Cache-Control", "max-age=0");
con.addRequestProperty("Expires", "0");
con.addRequestProperty("Pragma", "no-cache");
html = con.getInputStream();
//html = url.openStream();
int c = 0;
StringBuffer buffer = new StringBuffer("");
while(c != -1) {
c = html.read();
buffer.append((char)c);
}
return buffer.toString();
}
Однако, когда данные изменяются на стороне сервера - я в течение некоторого времени получаю тот же старый (кэшированный ) данные в качестве ответа ..
Пытался использовать:
- Cache-Control
- слегка измененные URL-адреса address+"?x="+d.getTime();
, но, похоже, ничего Работа.
Есть ли способ принудительно обновить refre sh, как если бы я использовал веб-браузер (ctrl-F5)?