2016-10-09 4 views
8

मैंने java.net.HttpURLConnection बनाया है और यह connection.connect() लाइन पर लटका है, भले ही मैंने कनेक्ट टाइमआउट सेट किया हो। "बी 4 कनेक्ट" लॉग हो जाता है और "कनेक्ट होने के बाद" कभी लॉग नहीं होता है। मैंने एपीआई 21 और ऊपर परीक्षण किया है और चीजें काम करती हैं, लेकिन मुझे यह समस्या एपीआई 16-19 पर मेरे परीक्षण के साथ मिलती है। नीचे मेरा कोड है। अनुरोध https का उपयोग कर रहा है और बैकएंड मानक nginx https कॉन्फ़िगरेशन का उपयोग करता है।एचटीटीपीएस अनुरोध केवल 20 से नीचे एंड्रॉइड एपीआई पर लटकता है, कनेक्ट कनेक्टआउट सेट

 URL url = new URL(urlString); 
     HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 

     try { 
      connection.setRequestMethod("GET"); 
      connection.setRequestProperty("charset", "utf-8"); 
      connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36"); 
      connection.setConnectTimeout('\uea60'); 
      connection.setReadTimeout('\uea60'); 

      connection.setInstanceFollowRedirects(false); 
      Log.d(TAG, "b4 connect"); 
      connection.connect(); 
      Log.d(TAG, "after connect"); 
      if(connection.getResponseCode() == 200) { 
       return IOUtils.toString(connection.getInputStream(), "UTF-8"); 
      } 

     } catch (Exception var) { 
      throw new Exception(var.getMessage()); 
     } finally { 
      connection.disconnect(); 
     } 
     return null; 
+0

यदि यूआरएल 'https' है तो इसके बजाय 'HttpsURLConnection' का उपयोग करें। –

+0

अच्छी कॉल, लेकिन मैंने कोशिश की और मुझे अभी भी यह समस्या है। – user299648

+0

इसे आजमाएं http://stackoverflow.com/a/8655039/2311117 – Shivansh

उत्तर

6
  1. आप कुछ यूनिकोड charachters का उपयोग कर timouts निर्दिष्ट कर रहे हैं। ऐसा नियमित संख्या प्रयास करें:

    connection.setConnectTimeout(30000); 
    сonnection.setReadTimeout(30000); 
    
  2. ध्यान रखें "के बाद कनेक्ट" समय समाप्ति पर लॉग इन नहीं किया जाएगा। इसके बजाय अपवाद फेंक दिया जाएगा।

+0

कैच के लिए धन्यवाद, टाइमआउट को 30000 पर सेट करने के बाद भी मुझे अपवाद संदेश मिलता है "कनेक्शन सहकर्मी द्वारा बंद किया गया" – user299648

+0

@ user299648 तो यह पहले जैसा आपने कहा था उतना लटका नहीं है? शायद यह वही तरीका होना चाहिए। – Fedor

संबंधित मुद्दे