java как заставить refre sh на URL-соединение - PullRequest
1 голос
/ 26 марта 2020

Я нахожусь за прокси-сервером, и я использую следующий код для получения данных из 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)?

...