[java] Java에서 URL 연결은 언제 종료됩니까?

Java는 언제 URL에 대한 연결을 해제합니까? URL 또는 URLConnection에 close () 메서드가 표시되지 않으므로 요청이 완료되는 즉시 연결이 해제됩니까? 저는 주로 예외 처리기에서 정리를해야하는지 확인하고 싶습니다.

try {
  URL url = new URL("http://foo.bar");
  URLConnection conn = url.openConnection();
  // use the connection
}
catch (Exception e) {
  // any clean up here?
}



답변

프로토콜에 지정된 특정 프로토콜에 따라 다릅니다. 일부는 지속적인 연결을 유지하고 다른 일부는 연결이 제공하는 입력 또는 출력 스트림에서 호출이 닫힐 때 연결을 닫습니다. 그러나 URLConnection에서 연 스트림을 닫는 것을 기억하는 것 외에는 수행 할 수있는 다른 작업이 없습니다.

java.net.URLConnection에 대한 javadoc에서

요청 후 URLConnection의 InputStream 또는 OutputStream에서 close () 메서드를 호출하면 특정 프로토콜 사양이 다른 동작을 지정하지 않는 한이 인스턴스와 관련된 네트워크 리소스를 해제 할 수 있습니다.


답변

HttpURLConnection으로 캐스트하면 disconnect () 메서드가 있습니다. 연결이 유휴 상태이면 즉시 연결이 끊어집니다. 보장 할 수 없습니다.


답변