보안 HTTP 서버에서 JAR 파일을 다운로드하려고합니다. 오류없이 파일을 다운로드 할 수 있지만 jar 파일을 실행하려고하면 Windows가 올바르지 않거나 손상된 파일을보고합니다. 오류가 없기 때문에 어디서 문제가 발생하는지 알 수 없으므로 HTTPS 서버라고 가정합니다. 파일이 3.8MB가되어야하기 때문에 누락 된 데이터가 있다는 것을 알고 있지만 다운로드를 마치면 27KB 밖에 없습니다.Java HTTPS 파일을 다운로드 하시겠습니까?
다운로드 방법은 다음과 같습니다
편집 : 루프를 가진 새로운 코드가 삽입하지만 여전히 나에게 27킬로바이트 파일을 제공합니다.
public static boolean downloadFile(String fileLocation, String urlLocation) {
try {
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
int i;
URL url = new URL(urlLocation);
URLConnection conn= url.openConnection();
File f = new File(fileLocation);
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f.getName()));
while ((i = bis.read()) != -1) {
bos.write(i);
}
bos.flush();
bos.close();
return true;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
2003 년 이래로 JSSE 용 'java.net.protocol.handler.pkgs'를 설정하거나 공급자를 추가 할 필요가 없습니다. 이동시 여러분은 어딘가에 HTTP 캐싱에 반대한다고 생각합니다. – EJP
감사하지만 여전히 내 문제를 해결하지 않습니다. 나는 문제가 while 루프에 있다고 말할 수있다. 그러나 아무리 많은 문제가 있더라도 문제는 없다. 나는 지금 오라클 오피스 페이지를 무수히 확인했지만 여전히 도움이되지 못한다. – EternalCode0
그래서 내가 코드 어딘가에 문제가있는 것이 아니라 어딘가에서 HTTP 캐싱에 반대한다고 생각하는 것입니다. – EJP