2017-11-04 20 views
0

pdf 파일을 다운로드하고 싶지만 소스 url이 너무 느립니다. 이 때문에 다음 코드로 인해 연결 시간 초과 예외가 발생합니다. java.net.URLConnection의 최대 시간 초과 설정

try { 
      URL url = new URL(source); 
      HttpURLConnection huc = (HttpURLConnection) 
      url.openConnection(); 
      huc.setConnectTimeout(0); //for unlimited 
      huc.setReadTimeout(0); 
      try (InputStream in = huc.getInputStream()) { 
       Files.copy(in, Paths.get(destination), StandardCopyOption.REPLACE_EXISTING); 
      } 
     } catch (IOException e) { 
      LOGGER.info("Error occured while copying file, %s", e); 
      return false; 
     } 

내가 밀리 있지만 ~ 1백30초 후 변환하여 setConnectTimeout 및 setReadTimeout 값을 모두 0 5 분을 변경하려고는 접속 타임 아웃 예외가 발생. 나는이 값을 바꿀 수 없었다. 설정된 읽기 및 연결 시간 초과 후 getConnectionTimeout 및 getReadTimeout 값이 반환 값으로 설정됩니다.

또한 아파치 라이브러리를 대상으로 입력 스트림을 복사했지만 연결 시간 초과 예외가 발생했습니다.

나는 이미 알고있다. 15 초보다 큰 연결은 비정상이지만 파일을 다운로드하는 데는 어느 정도 시간이 걸린다.

이렇게 시간 제한 값을 늘리는 방법은 무엇입니까?

+2

_ "15 초 이상의 연결이 비정상이지만 파일을 다운로드하는 데 걸리는 시간을 알고 싶습니다."_ - 연결 시간과 읽기 시간 제한 값은 파일을 다운로드하는 데 걸리는 시간과 아무 관련이 없습니다. . 연결 시간 초과는 파일이 다운로드되기 오래 전에 연결이 설정되기 전에 발생합니다. 연결이 설정되면 연결 시간 초과 값은 의미가 없습니다. –

+0

오해로 죄송합니다. "소요 시간"은 연결 및 읽기의 총 시간을 의미합니다. –

답변

1

플랫폼 기본값 (Javadoc의 20 년과 반대)을 초과하여 연결 시간 초과를 늘릴 수 없으므로 그렇게 할 필요가 없습니다. 다운로드 시간에는 영향을주지 않습니다. 유일한 타임 아웃은 읽기 타임 아웃입니다.

'소스 URL이 너무 느립니다'라는 경우에는 시간 제한을 설정해도 더 빨리 걸리지 않습니다.