2013-10-09 23 views
5

Ngay bây giờ tôi đang sử dụng HTTPRequest mọi thứ đang hoạt động tốt. Nhưng tôi muốn để xử lý các tình huống sauThời gian kết nối Out

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

Tôi đang sử dụng thời gian conection ra nhưng thành thật nói nó mất thời gian riêng của mình để thời gian ra và đó không phải là 40 giây ít hơn thế. Mã cho Yêu cầu là sau đây:

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; 
     } 

Sau khi chạy kịch bản nhấn mạnh tôi đều có phản ứng sau:

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 

Bây giờ những gì tôi cần làm là để thêm hẹn giờ chạy cho khoảng thời gian cụ thể cần một chút giúp đỡ trên số cảm ơn bạn trước sự quan tâm của bạn.

Trả lời

-1

Chỉ cần thêm quyền vào để hiển thị

<uses-permission android:name="android.permission.INTERNET" /> 
Các vấn đề liên quan