![](/img/trans.png)
[英]How to open pdf file which is located at server side by specifying its server side path in android using mupdf
[英]Android: how to know file located in web server is modified?
我正在解析位於 web 服務器中的 Xml 文件並將解析的數據存儲到數據庫中。 對於我的應用程序,我正在使用數據庫中的數據。 只有當文件被修改時,我才需要解析 xml 文件,否則不需要解析。 那么我怎么知道文件被修改了呢? 我知道我可以使用“if-modified-since”header。 但我需要一些“if-modified-since”的例子 header
請幫我.......
由於您正在從 web 服務器檢索您的 .xml 文件,因此這應該相對容易,無需進行服務器端 MD5 總和。
如果您正在對 xml 文件執行 HTTP 請求,您可以簡單地從 web 服務器執行 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 來確定您的文件是否已被修改。
計算文件的MD5。 你可以保存舊的並比較它嗎?
如果您不知道如何操作,請查看以下示例: Getting a File's MD5 Checksum in Java
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.