Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Запрет на кеширование файлов с хттп скачки


Автор: Viroman 12.7.2010, 02:12
Привет дорогие форумчане,

скачиваю по хттп протоколу файлы, проверяю главное размер, файл изменился, и по сути джава не кеширует, а как скачиваю, так выходит, что файл старый, вот и вопрос на засыпку, как запретить это кеширование, а то приходится лезть в настройки и опустоашть кеш, прежде чем новый скачать файл, неудобно очень..
Может блин попробовать "?случайный код" вешать на ссылки..

Автор: m1ha 12.7.2010, 03:00
Код

public class NonCachingRequestWrapper extends HttpServletRequestWrapper
{
public NonCachingRequestWrapper(HttpServletRequest req)
{
super(req);
}
public String getHeader(String name)
{
// hide only the If-Modified-Since header
// and return the actual value for other headers
if(name.equals("If-Modified-Since"))
{
return null;
}
else
{
return super.getHeader(name);
}
}
}



Wrap the request into an HttpServletRequestWrapper and override the
getHeader() method to return null for the If-Modified-Since
header. A null value for this header ensures that the server does send the file.

Автор: Viroman 12.7.2010, 11:51
m1ha, а это отключение кеширования через хеадеры для сервера, я так понимаю, а не для локальной работы??? Почему спрашиваю, я по другому сделал и не знаю, что же лучше.

в общем было с кешированием
Код

    URL url = null;
    InputStream in = null;
    url = new URL(mojfajl);
    in = url.openStream();


стало без кеширования
Код

    URL url = null;
    InputStream in = null;
    URLConnection urlconnection = null;
    url = new URL(mojfajl);
    urlconnection = (URLConnection)url.openConnection();
    urlconnection.setUseCaches(false);
    urlconnection.setDefaultUseCaches(false);
    urlconnection.connect();
    in = urlconnection.getInputStream();


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)