2013-09-01 305 views
0

嗨,我使用LoopJ庫來獲取服務器在json中的響應。但問題是,有時我得到org.apache.http.conn.ConnectTimeoutException,有時它運行良好。我正在使用GET方法。但是,當我複製並粘貼URL到我的瀏覽器它運行良好但在Android設備上,我大多不能連接到服務器是什麼問題。我究竟做錯了什麼 ?Android異步Http客戶端

client.setTimeout(timoutVal); 
client.get(
    "http://somewebsiteaddress.com/users.php?task=isUserPresent&email=" 
     + URLEncoder.encode(username) + "&password=" 
     + URLEncoder.encode(password) + "&licenseKey=" 
     + URLEncoder.encode(licKey), null, 
    new AsyncHttpResponseHandler() { 

     public void onSuccess(String response) { 

     loading.cancel(); 

     Log.v("web response ", response); 

     try { 
      json = new JSONObject(response); 

      if (json.getBoolean("status")) { 

      delegate.Validation(
       json.getBoolean("isUserPresent"), 

       json.getBoolean("license"), username, 
       password, json); 

      } else { 

      delegate.invalidLogin(); 
      } 

     } catch (JSONException e) { 

      e.printStackTrace(); 
     } 

     } 

     @Override 
     public void onFailure(Throwable arg) { 

     Log.v("onFailure", arg + ""); 

     loading.cancel(); 

     delegate.InternetErrorDialog(); 

     super.onFailure(arg); 
     } 

    }); 
+0

只要提一下原因:http://developer.android.com/reference/org/apache/http/conn/ConnectTimeoutException.html可能是因爲連接到HTTP服務器或等待可用連接時出現「超時」 。 –

回答

0

嘗試增加超時值。 原因是客戶端會嘗試獲取響應,直到超時值。 只要超過超時值,就會拋出超時異常。