使用其 URL 检查远程服务器上是否存在文件

2022-08-31 15:35:18

如果远程服务器上存在文件(由HTTP提供),如何检查Java,并具有其URL?我不想下载该文件,只需检查它的存在。


答案 1
import java.net.*;
import java.io.*;

public static boolean exists(String URLName){
    try {
      HttpURLConnection.setFollowRedirects(false);
      // note : you may also need
      //        HttpURLConnection.setInstanceFollowRedirects(false)
      HttpURLConnection con =
         (HttpURLConnection) new URL(URLName).openConnection();
      con.setRequestMethod("HEAD");
      return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
    }
    catch (Exception e) {
       e.printStackTrace();
       return false;
    }
  }

如果与 URL 的连接(使用 HttpURLConnection 建立)返回 HTTP 状态代码 200,则该文件存在。

编辑:请注意,由于我们只关心它是否存在,因此无需请求整个文档。我们可以使用HTTP HEAD请求方法来请求标头,以检查它是否存在。

资料来源:http://www.rgagnon.com/javadetails/java-0059.html


答案 2
public static boolean exists(String URLName){
    try {
      HttpURLConnection.setFollowRedirects(false);
      // note : you may also need
      //        HttpURLConnection.setInstanceFollowRedirects(false)
      HttpURLConnection con =
         (HttpURLConnection) new URL(URLName).openConnection();
      con.setRequestMethod("HEAD");
      return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
    }
    catch (Exception e) {
       e.printStackTrace();
       return false;
    }
  }  

检查 URL 是否存在