Java में URL कनेक्शन कब बंद होता है?


82

जावा एक URL से कनेक्शन कब जाने देता है? मुझे URL या URLConnection पर कोई करीबी () विधि दिखाई नहीं देती है, तो क्या यह अनुरोध समाप्त होते ही कनेक्शन को मुक्त कर देता है? मैं मुख्य रूप से यह देखने के लिए कह रहा हूं कि क्या मुझे अपवाद हैंडलर में कोई सफाई करने की आवश्यकता है।

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

10
कभी भी कैच (अपवाद) का उपयोग न करें, यदि एक विशेष अपवाद को फेंक दिया जाता है, तो प्रत्येक को अपने स्वयं के खंड में पकड़ लें
OscarRyz

4
या कम से कम अपवाद को पकड़ें (यदि कोई अन्य अपवाद नहीं पकड़ता है)।
जेरेमी

जवाबों:


50

यह प्रोटोकॉल में निर्दिष्ट विशिष्ट प्रोटोकॉल पर निर्भर करता है। कुछ लगातार कनेक्शन बनाए रखते हैं, अन्य आपके कनेक्शन को बंद कर देते हैं जब आपका कॉल कनेक्शन द्वारा दिए गए इनपुट या आउटपुटस्ट्रीम में बंद हो जाता है। लेकिन URLConnection से आपके द्वारा खोले गए स्ट्रीमों को बंद करने के लिए याद रखने के अलावा, कुछ और नहीं है जो आप कर सकते हैं।

Java.net.URLConnection के लिए javadoc से

एक अनुरोध के बाद URLConnection के InputStream या OutputStream पर क्लोज़ () तरीकों को लागू करना इस उदाहरण से जुड़े नेटवर्क संसाधनों को मुक्त कर सकता है, जब तक कि विशेष प्रोटोकॉल विनिर्देश इसके लिए अलग-अलग व्यवहार निर्दिष्ट न करें।


2
यह अच्छा जवाब देता है लेकिन HttpUrlConnection के नाममात्र मामले को कवर नहीं करता है।
स्निकोलस

53

यदि आप एक HttpURLConnection में जाते हैं, तो एक डिस्कनेक्ट () विधि है। यदि कनेक्शन निष्क्रिय है, तो यह संभवतः तुरंत डिस्कनेक्ट हो जाएगा। कोई गारंटी नहीं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.