Holen Sie sich Metadaten von Dropbox Link ohne Authentifizierung

Ich möchte nach einer geänderten Version suchen / Metadaten einer Textdatei mit einem gemeinsamen Link in der Dropbox abrufen. Ich werde keine Dropbox-API verwenden, da Benutzer dadurch ihre eigenen Konten verwenden. Ich möchte, dass sie eine Verknüpfung zu meinem Konto herstellen, und ich kann dies nicht manuell tun, da ich mein Passwort später möglicherweise ändern werde.

Also: Kein Authentifizierungstoken, nur Metadaten vom freigegebenen Link der Dropbox abrufen, damit ich nach Versionsänderungen suchen und den Inhalt der neuen Datei herunterladen kann, wenn sich die Version geändert hat.

außerdem: ich bin offen für andere vorschläge, um dies auch zu verwirklichen. Bitte erläutern Sie kurz Ihre Lösung.

Aktualisierte E-Tag-Ausgabe:

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

    }

Antworten auf die Frage(1)

Ihre Antwort auf die Frage