您的位置:首页 > 科技 > IT业 > 判断http链接中文件是否存在

判断http链接中文件是否存在

2024/10/11 17:09:49 来源:https://blog.csdn.net/dhklsl/article/details/141313855  浏览:    关键词:判断http链接中文件是否存在

        最近项目遇到需要从http请求下载文件到服务器,下载前需要判断下http中的文件是否存在。如果判断本地服务器上文件是否存在,用file.exists来判断。但是这个方法却无法判断http中文件是否存在。

        如果要判断http文件是否存在,用如下代码:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;public class Main {public static void main(String[] args) {String urlString = "http://example.com/file.txt";try {URL url = new URL(urlString);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("HEAD");int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {System.out.println("文件存在");} else {System.out.println("文件不存在");}} catch (IOException e) {System.out.println("连接失败");}}
}

如果对方系统需要身份验证,那么需要加如下代码。我们系统是需要token验证。加权限验证的代码如下:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;public class Main {public static void main(String[] args) {String urlString = "http://example.com/file.txt";try {URL url = new URL(urlString);HttpURLConnection connection = (HttpURLConnection) url.openConnection();//权限校验connection.setRequestProperty("X-JFrog-Art-Api","cmv125VmedaeDAFdafLFAF2ed");//HEAD请求,不返回响应体,但是有些服务器可能不支持,则改成GET请求connection.setRequestMethod("HEAD");int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {System.out.println("文件存在");} else {System.out.println("文件不存在");}} catch (IOException e) {System.out.println("连接失败");}}
}

判断http中文件是否存在可以利用java.nio的方法,代码如下:

import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class Main {public static void main(String[] args) {String urlString = "http://example.com/file.txt";try {URL url = new URL(urlString);Path path = Paths.get(url.toURI());if (Files.exists(path)) {System.out.println("文件存在");} else {System.out.println("文件不存在");}} catch (IOException e) {System.out.println("连接失败");}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com