目录
流程:
1.设置请求头,如果需要token验证的话,也需要在请求头中设置 2.设置url地址,在get请求中,请求参数在路径中体现 3.获取url连接HttpsURLConnection 4.从HttpsURLConnection中获取文件名,在本示例中传入的参数就是文件名则不需要去获取文件名 5.从HttpsURLConnection中获取输入流 6.循环读取输入流,写入输出流,将文件下载到本地
说明:
一是调用下载方法
二是主方法,主要流程
剩余的是主方法中调用的方法
一、下载方法调用
public void testFileDownload() {
String fileName = "文件名";
String domainUrl = "https://127.1.1.1:7443";
String apiUrl = "/api/v1/download/file";
//如果不需要token验证则不需要设置
String tokenUrl = "/api/v1/gettoken";
String userName = "openapiuser";
String password = "Ubuntu_123";
try {
downloadLocalFile( fileName, domainUrl, apiUrl, tokenUrl, userName, password);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
二、调用下载文件接口,将文件下载保存到本地主方法
public void downloadLocalFile(String fileName, String domainUrl, String apiUrl, String tokenUrl, String userName, String password) throws IOException {
//1.获取token(调用接口前,一般需要验证即token验证。如果没有就不用设置),设置请求头
HashMap<String, String> header = getHeader(domainUrl, tokenUrl, userName, password);
//2.设置url地址,在get请求中,请求参数在路径中体现
String url = domainUrl + apiUrl + "?fileName=" + fileName;
//3.获取url连接
HttpsURLConnection httpsConn = HttpsUtil.getHttpsURLConnection(url, "GET", header);
//从HttpsURLConnection中获取文件名,在本示例中传入的参数就是文件名则不需要去获取文件名
String fileName1 = getFileName(httpsConn);
//4.从HttpsURLConnection中获取输入流
try (InputStream inputStream = httpsConn.getInputStream()) {
//5.将文件下载到本地
downloadFileToLocal(inputStream, fileName);
} catch (IOException e) {
System.out.println("download file fail");
} finally {
//6.关闭http连接
try {
httpsConn.disconnect();
} catch (Exception e) {
System.out.println("----Close HttpsURLConnection fail");
}
}
}