从Dropbox链接获取元数据而不使用身份validation

我想检查一个版本更改/获取文本文件的元数据与dropbox上的共享链接。 我不会使用dropbox api,因为它会让用户使用自己的帐户。 我希望他们链接到我的帐户,我不能手动执行,因为我可能会在以后更改我的密码。

所以:没有身份validation令牌,只需从dropbox的共享链接获取元数据,以便我可以检查版本更改,如果版本已更改,则下载新文件的内容。

另外:我也愿意接受其他建议来完成这项工作。 请详细解释一下您的解决方案。

更新的电子标签问题:

public void getFromOnlineTxtDatabase(){ try{ URL url = new URL("url-here"); HttpURLConnection.setFollowRedirects(true); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setDoOutput(false); con.setReadTimeout(20000); con.setRequestProperty("Connection", "keep-alive"); //get etag for update check String etag = con.getHeaderField("etag"); //String etag= ""; con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"); ((HttpURLConnection) con).setRequestMethod("GET"); //System.out.println(con.getContentLength()) ; con.setConnectTimeout(5000); BufferedInputStream in = new BufferedInputStream(con.getInputStream()); int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { System.out.println(responseCode); } StringBuffer buffer = new StringBuffer(); int chars_read; //int total = 0; while ((chars_read = in.read()) != -1) { char g = (char) chars_read; buffer.append(g); } final String page = buffer.toString(); //create password_ems.txt to internal if (fileExistance("data.txt")){ File dir = getFilesDir(); File file = new File(dir, "data.txt"); boolean deleted = file.delete(); stringToTxt(page, "data.txt"); }else{ stringToTxt(page, "data.txt"); } if (fileExistance("data_etag.txt")){ File dir = getFilesDir(); File file = new File(dir, "etag.txt"); boolean deleted = file.delete(); stringToTxt(etag, "etag.txt"); }else{ //create etag_file stringToTxt(etag, "data_etag.txt"); } // Log.i("Page", page); }catch(Exception e){ showDialog("Database Fetch Failure","Unable to Fetch Password Database, check your internet" + " connection and try again later.",0); Log.i("Page", "Error"); } } 

如果对公共或共享的Dropbox URL执行HTTP HEAD请求,除其他外,您将获得etag标头。 我不知道这种行为是有保证的,因为我认为它没有在任何地方记录,但至少现在etag标头可用于确定文件何时发生变化。 (如果etag不同,则文件已更改。)

编辑

通常,在使用ETag时,最有效的方法是发出一个带有If-None-Match: 标头的GET请求If-None-Match: 。 如果内容未更改,则将以304响应,但如果内容已更改,则将按照正常的GET请求下载新内容(响应将为200)。