尝试获取服务器上文件的最后修改时间时出错

Error when trying to get last modifed time of a file on a server

我正在尝试使用 URLConnection 在服务器上获取我的文本文件的 getLastModifed() 时间,但出现错误。

代码如下:

public static String checkLastModified() throws IOException {
    URL url = new URL("http://c24871.shared.hc.ru/Extra.txt");
    URLConnection con = url.openConnection();
    Date lastModified = new Date(con.getLastModified());

    return dff.format(lastModified);
}

如果您想了解更多信息,我会编辑问题。

我假设你的主要问题是方法 checkLastModified() 没有打印任何东西。相反,它 returns 创建的日期字符串。在调用 checkLastModified() 的主要方法中,您必须打印返回的字符串才能看到结果:

public static void main(String[] args) {
    try {
        String result = checkLastModified();
        System.out.println(result);
    } catch (IOException e) {
        e.printStackTrace();
    }
}


public static String checkLastModified() throws IOException {
    URL url = new URL("http://c24871.shared.hc.ru/Extra.txt");
    URLConnection con = url.openConnection();
    Date lastModified = new Date(con.getLastModified());

    SimpleDateFormat dff = new SimpleDateFormat();
    return dff.format(lastModified);
}

如果你这样做,你会在控制台上看到

26.08.18, 09:51

终于找到解决办法了。 只需要将所有这些功能放在一个线程中:

new Thread(new Runnable() {
        public void run() {
            URL url = null;
            try { url = new URL("http://c24871.shared.hc.ru/Extra.txt");
            } catch (MalformedURLException e) { e.printStackTrace(); }
            connection = null;
            try { connection = url.openConnection();
            } catch (IOException e) { e.printStackTrace(); }
            Log.d(TAG, String.valueOf(connection.getLastModified()));


        }
    }).start();