У меня есть файл XML, который я обрабатываю в своем приложении для Android. Я не хотел бы анализировать его, если файл не был изменен.Простой способ проверить, изменился ли файл на сервере без загрузки
я могу получить время, когда мой файл был последний доработан, и я могу получить дату последнего изменения из заголовка сервера в GMT, но я не уверен, что теперь делать ...
//this is a string: status.getHeader("last-modified");
//Shows like so: Tue, 05 March 2013 16:45:02 GMT
String serverlastmodified = status.getHeader("last-modified");
Log.e("Header",serverlastmodified);
Date s = status.getTime();
String filelastgotten = s.toGMTString();
//String shows like so: 5 Mar 2013 19:41:43 GMT
Log.e("LM", filelastgotten);
//this needs to be a great-than/less-than?
//But I cannot do that to a string... so change to int?
if(serverlastmodified.equals(filelastgotten)){
Log.e(TAG,"YES!");
}else{
Log.e(TAG,"NO!");
}
EDIT :::::::::
Как это выглядит?
В итоге я убедился, что две даты не совпадают с использованием SimpleDateFormat и toGMTString();
String serverLastModified = status.getHeader("last-modified");
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyy HH:mm:ss zzz");
Date d = null;
try {
d = sdf.parse(serverLastModified);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date fileLastGotten = status.getTime();
Log.e("DATE1", d.toGMTString());
Log.e("DATE2", fileLastGotten.toGMTString());
if (d.before(fileLastGotten)) {
Log.e("DS", "YES!");
} else {
Log.e("DS", "NO!");
}
Hi atreat, спасибо за комментарий. Таким образом, XML-файл сервера должен иметь связанный с ним MD5, а затем мое приложение расшифровывает это и сравнивает? Я не уверен, что XML-файл имеет это. Если я попробую status.getHeader («Content-MD5»); Я получаю нуль ... так что, полагаю, нет. Есть предположения? – jasonflaherty
MD5 - это не то, что файл будет содержать. если вы перейдете в командную строку UNIX, вы можете ввести «md5», чтобы увидеть MD5 файла. В основном то, что он делает, это хруст битов вашего файла в уникальную строку. Если файл изменится, MD5 также изменится. Я бы прочитал алгоритм хэширования MD5 и другие алгоритмы хеширования. Они могут быть очень полезными. –
atreat
Да, это то, что нужно создать на уровне сервера? Тогда я могу использовать getHeader(), чтобы получить его? – jasonflaherty