当前位置: 首页 > news >正文

判断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("连接失败");}}
}

http://www.lryc.cn/news/428258.html

相关文章:

  • Flink CDC (session模式)
  • 下载ISO镜像的方法 Debian、Red Hat 、CentOS、Ubuntu、Kali Linux
  • 想学接口测试,不知道那个工具适合?
  • 干货分享 | TSMaster—RP1210模块使用指南
  • 一步解决Ubuntu中无法使用git clone的问题
  • c++的时间复杂度
  • PDF转图片 JAVA
  • 树莓派5 笔记26:ollama大型语言模型_中文输入法_Python_espeak文字转语音
  • 【kubernetes】k8s安全机制
  • Android T(13) The app is granted permissions by default
  • 4 - Linux远程访问及控制
  • 如何使用AWS EC2资源?
  • Linux高编-进程的概念(1)
  • go语言中new和make的区别
  • SpringBoot响应式编程(3)R2DBC
  • 什么是私有继承
  • Scratch编程:开启智能硬件控制的大门
  • 机器学习第十二章-计算学习理论
  • Java-自定义注解操作日志记录处理(@Pointcut注解不是必须的)
  • 【c++】深入理解别名机制--引用
  • 简便的qemu img扩容方法
  • EPERM: operation not permitted,
  • 将Centos 8 Linux内核版本升级或降级到指定版本
  • 小程序商城被盗刷,使用SCDN安全加速有用吗?
  • nginx的基本使用与其日志
  • linux | 苹果OpenCL(提高应用软件如游戏、娱乐以及科研和医疗软件的运行速度和响应)
  • 算法-UKF中Sigma点生成
  • 精选五款热门骨传导耳机分享,让你避免踩坑的陷阱
  • 「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)
  • python人工智能002:jupyter基本使用