gpt4 book ai didi

java - 未经授权从 Dropbox 链接获取元数据

转载 作者:搜寻专家 更新时间:2023-11-01 08:56:21 25 4
gpt4 key购买 nike

我想检查版本更改/获取文本文件的元数据,其中包含保管箱上的共享链接。我不会使用 dropbox api,因为它会让用户使用他们自己的帐户。我希望他们链接到我的帐户,但我无法手动执行此操作,因为我稍后可能会更改密码。

所以:没有授权 token ,只是从保管箱的共享链接获取元数据,这样我就可以检查版本更改,如果版本已更改,则下载新文件的内容。

另外:我愿意接受其他建议来使这项工作也有效。请详细说明您的解决方案。

更新的电子标签问题:

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");
}

}

最佳答案

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

编辑

一般来说,使用 ETag 时,最有效的做法是发出 GET header 为 If-None-Match: <old etag> 的请求.如果内容没有改变,这将以 304 响应,但如果内容已改变,这将按照正常 GET 下载新内容。请求(响应将为 200)。

关于java - 未经授权从 Dropbox 链接获取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18596252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com