2009-07-15 5 views
2

Любой API Java на стороне клиента может проверить его измененную дату?Как проверить, обновлен ли статический файл на веб-сервере или нет?

+0

Клиентская сторона означает, что именно? Получаете ли вы файл с сервера через HttpClient или что-то подобное? Если это так, вам нужно посмотреть заголовки HTTP (в частности, Last-Modified). Просьба уточнить. – ChssPly76

+0

Извините, я имею в виду на стороне клиента. Вопрос пересматривается. –

ответ

2

Вы можете использовать HttpURLConnection, чтобы проверить значение Last-Modified на странице, предполагая, что сервер возвращает его.

Этот запрос использует HTTP HEAD method вернуть только заголовки для ресурса:

URL url = new URL(
    "http://en.wikipedia.org/wiki/Main_Page"); 
HttpURLConnection httpConnection = (HttpURLConnection) url 
    .openConnection(); 
httpConnection.setRequestMethod("HEAD"); 
httpConnection.connect(); 
long lastModified = httpConnection.getLastModified(); 
if (lastModified != 0) { 
    System.out.println(new Date(lastModified)); 
} else { 
    System.out.println("Last-Modified not returned"); 
} 
httpConnection.disconnect(); 

// TODO: error handling 

HttpURLConnection адекватен для некоторых вещей, но если вы хотите получить более округлую API, посмотрите на Apache HttpComponents.

1

Вы можете использовать метод lastModified в java.io.File, чтобы узнать последний раз, когда файл был изменен.

+0

Извините, я имею в виду на стороне клиента. Вопрос пересматривается. –