2012-06-15 18 views
5

मैं जावा में एक यूआरएल से इंटरनेट से एक छवि प्राप्त करने की कोशिश कर रहा हूं। मैं निम्नलिखित कोड का उपयोग कर रहा हूँ।यूआरएल फांसी से यूआरएल पढ़ने वाली छवि

URL url = new URL(webAddress); 
image = ImageIO.read(url); 

कभी-कभी यह काम करता है और कभी-कभी यह वेब एड्रेस के आधार पर अनिश्चित काल तक लटकता है। कोई त्रुटि संदेश नहीं, यह सिर्फ चल रहा है और कुछ भी नहीं कर रहा है।

निश्चित रूप से उन पतों पर छवियां हैं जहां यह हमेशा के लिए लटकती है, जैसा कि उन्हें एक वेब ब्राउज़र में कॉपी और पेस्ट करके पुष्टि की जाती है। ऐसा लगता है कि कौन सा काम काम करता है और कौन सा नहीं है- वे सभी jpegs हैं। मैंने कुछ खोज की है और एक यूआरएल से छवि प्राप्त करने के लिए कुछ अन्य तरीकों को पाया है, लेकिन वही बात उन सभी के साथ होती है- वे कुछ छवियों पर काम करते हैं और दूसरों पर लटकते हैं।

क्या आपको पता है कि इसका कारण क्या हो सकता है, और इसे कैसे ठीक किया जा सकता है?

+1

क्या आप एक उदाहरण यूआरएल दे सकते हैं जिस पर यह लटका हुआ है? – npe

उत्तर

5

हम्म मुझे यकीन नहीं है कि यह कोशिश करें और देखें कि कोई परिवर्तन या त्रुटि फेंक दी गई है या नहीं। मैं भी लगता है कि हो सकता है आप गलत पर setRedirects (बूलियन ख) यह भी हो सकता है दे रही है समस्या है लेकिन कोशिश यह पहली:

URLConnection con = null; 
    InputStream in = null; 
    try { 
     String webadd="urls go here try the two you have had probelms with and success"; 
     URL url = new URL(webadd); 

     con = url.openConnection(); 
     con.setConnectTimeout(10000); 
     con.setReadTimeout(10000); 
     in = con.getInputStream(); 
     Image img = ImageIO.read(in); 
     if (img != null) { 
      System.out.println("Loaded"); 
     } else { 
      System.out.println("Could not load"); 

     } 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } finally { 
     if(is != null) { 
      try { 
       is.close(); 
      } catch(IOException ex) { 
       // handle close failure 
      } 
     } 

     if(con != null) { 
      con.disconnect(); 
     } 
    } 
} 

संपादित करें: या यदि त्रुटि अभी भी साथ होता है शायद एक बग ?: http://bugs.sun.com/view_bug.do;jsessionid=2bc7386e2f8b4e2550f8b10122f?bug_id=6309072 इस जांच करने के लिए उपरोक्त कोड आज़माएं:

 Image img=new ImageIcon(url).getImage(); 
+0

ImageIcon तकनीक काम किया। धन्यवाद। – Bergil

+0

हमम तो यह सिर्फ एक बग हो सकता है? बहुत खुशी है कि आप इसे काम कर रहे हैं मुझे ImageIcon() की आदत में मिला है। getImage() को कभी परेशानी नहीं हुई। –

+0

छवि पढ़ने के बाद इनपुट स्ट्रीम को बंद करना याद रखें (भले ही कोई अपवाद फेंक दिया गया हो)! –