0

URL から txt ファイルの etag 値を取得する必要があります。txt ファイルはドロップボックスにアップロードされます。

etag は、txt URL の http ヘッダーの一部です。

ファイルが非常に小さい場合 (たとえば 5 ~ 10 文字)、コードは etag 値 np を示します。

ただし、ファイルが 4000 文字以上の場合、etag 値として null が返されます。ここで助けが必要です。なぜこれが起こるのかわかりません。

これが私のコードです。

public void getDatabaseEtag(){
        try {


            URL url = new URL("https://dl.dropboxusercontent.com/<EDITED>.txt");
            HttpURLConnection.setFollowRedirects(true);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setDoOutput(false);
            con.setReadTimeout(20000);
            con.setRequestProperty("Connection", "keep-alive");

            con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0");
            ((HttpURLConnection) con).setRequestMethod("HEAD");


            Map<String, List<String>> map = con.getHeaderFields();

            System.out.println("Printing Response Header...\n");

            for (Map.Entry<String, List<String>> entry : map.entrySet()) {
                System.out.println("Key : " + entry.getKey() 
                        + " ,Value : " + entry.getValue());
            }

            System.out.println("\nGet Response Header By Key ...\n");
            String etag = con.getHeaderField("ETag");

            if (etag == null) {
                System.out.println("Key 'ETag' is not found! in GetDatabaseEtag()");
            } else {
                //to string in internal storage etag
                stringToTxt(etag,"data_etag.txt");
                System.out.println("ETag - " + etag);
            }

            System.out.println("\n Done");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
4

0 に答える 0