Поскольку вы извлекаете файл .xml с веб-сервера, это должно быть относительно просто без необходимости суммирования MD5 на стороне сервера.
Если вы выполняете HTTP-запрос для файла XML, вы можетепросто выполните запрос HEAD с веб-сервера, и он вернется, если файл был изменен / модифицирован или не существует.Это также легкий вес, и самое приятное то, что сервер уже должен сделать это за вас.
Редактировать : перечитайте ваш вопрос, похоже, у вас была та же идея.Вот код:
import java.net.*;
import java.io.*;
// Using HTTP_NOT_MODIFIED
public static boolean Changed(String url){
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
// GET THE LAST MODIFIED TIME
public static long LastModified(String url)
{
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
long date = con.getLastModified();
if (date == 0)
System.out.println("No last-modified information.");
else
System.out.println("Last-Modified: " + new Date(date));
return date;
}
См .:
В качестве альтернативы, если ваш сервер поддерживает их, вы можете использовать ETags, чтобы узнать, был ли ваш файл изменен.