2013-10-09 42 views
5

Şu anda HTTPRequest kullanıyorum her şey yolunda çalışıyor. Ama ben conection zaman aşımına kullanarak ama dürüstçe zaman aşımına için kendi zaman alabilir konuşma ve o bundan daha değil 40 saniye daha azdır amBağlantı Zaman Aşımı

Device is connected to wifi but wifi is not connected to internet

şu senaryoyu halletmek istiyorum. İsteği Kod takip ediyor: Yapacak biraz yardıma ihtiyacı belirli bir aralık için çalışır zamanlayıcı eklemek için olduğunu gerekenleri Şimdi

10-09 10:42:00.845: W/System.err(6052): java.net.UnknownHostException: Unable to resolve host "xxx.xxx.com": No address associated with hostname 
    10-09 10:42:00.850: W/System.err(6052):  at java.net.InetAddress.lookupHostByName(InetAddress.java:424) 
    10-09 10:42:00.850: W/System.err(6052):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
    10-09 10:42:00.855: W/System.err(6052):  at java.net.InetAddress.getAllByName(InetAddress.java:214) 
    10-09 10:42:00.855: W/System.err(6052):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) 
    10-09 10:42:00.855: W/System.err(6052):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
    10-09 10:42:00.860: W/System.err(6052):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
    10-09 10:42:00.860: W/System.err(6052):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
    10-09 10:42:00.860: W/System.err(6052):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670) 
    10-09 10:42:00.860: W/System.err(6052):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509) 
    10-09 10:42:00.865: W/System.err(6052):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
    10-09 10:42:00.870: W/System.err(6052):  at com.putitout.Utils.Network.doHttpGetWithCode_1(Network.java:363) 
    10-09 10:42:00.875: W/System.err(6052):  at com.putitout.GREEGS.Rewards.RewardHomeScreen$18.run(RewardHomeScreen.java:1157) 
    10-09 10:42:00.880: W/System.err(6052): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname) 
    10-09 10:42:00.880: W/System.err(6052):  at libcore.io.Posix.getaddrinfo(Native Method) 
    10-09 10:42:00.885: W/System.err(6052):  at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55) 
    10-09 10:42:00.885: W/System.err(6052):  at java.net.InetAddress.lookupHostByName(InetAddress.java:405) 
    10-09 10:42:00.885: W/System.err(6052):  ... 11 more 
    10-09 10:42:00.890: W/System.err(6052): Caused by: libcore.io.ErrnoException: getaddrinfo failed: ETIMEDOUT (Connection timed out) 
    10-09 10:42:00.890: W/System.err(6052):  ... 14 more 

i şu yanıtı aldık

public String[] doHttpGetWithCode_1(String url, String headerParam) throws Exception { 


     weburl   = new URL(url); 
     uri   = new URI(weburl.getProtocol(), weburl.getUserInfo(), weburl.getHost(), weburl.getPort(), weburl.getPath(), weburl.getQuery(), weburl.getRef()); 
     result   = new String[2]; 
     httpParameters = new BasicHttpParams(); 
      // Set the timeout in milliseconds until a connection is established. 
     timeoutConnection = 3000; 
     HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); 
      // Set the default socket timeout (SO_TIMEOUT) 
      // in milliseconds which is the timeout for waiting for data. 
     timeoutSocket = 3000; 
     HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); 
     httpURL=(HttpURLConnection) weburl.openConnection(); 
     httpURL.setDoOutput(true); 
     httpURL.setDoInput(true); 
     httpURL.setRequestMethod("GET"); 
     client   =new DefaultHttpClient(httpParameters); 
     httpget = new HttpGet(url); 
     httpget.addHeader("Content-Type", "application/json"); 
     httpget.addHeader("Authorization", "Basic " + Base64.encodeToString(("greggs:sausage123").getBytes(),Base64.NO_WRAP)); 
     httpget.addHeader("X-Auth-Signature", headerParam); 
     httpget.setParams(httpParameters); 

     try{ 
      response = client.execute(httpget); 
      entity  = response.getEntity(); 
      is   = entity.getContent(); 
//   BufferedReader br = new BufferedReader(new InputStreamReader(in); 
      reader  = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8)); 
      sb   = new StringBuilder(); 
      line  = null; 

       try { 
        while ((line = reader.readLine()) != null) { 
         sb.append(line + "\n"); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } finally { 
        try { 
         is.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
     } 
     catch(ClientProtocolException CPE) 
     { 
      CPE.printStackTrace(); 
     } 


      result[0] = response.getStatusLine().getStatusCode()+""; 
      result[1] = sb.toString(); 
      return result; 
     } 

vurgulanan senaryoyu çalıştırdıktan sonra Bu tarihinde, ilginiz için şimdiden teşekkür ederiz.

cevap

-1

Sadece tezahür etmeye de iznini ekleyin

<uses-permission android:name="android.permission.INTERNET" /> 
İlgili konular