2014-09-23 26 views
9

我正在嘗試使用Volley打擊休息服務。排球超時錯誤

public class AuthFunctions { 
    private static final String LOGIN_URL = "http://10.0.2.2:8080/stewayservices/user-management/users/10"; 
    boolean result; 
    public boolean loginUser(String email,String password){ 

     JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,LOGIN_URL,null,new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       Log.d("JsonObject Response",response.toString()); 
       try { 
        JSONObject user = response.getJSONObject("user"); 
        String firstName = user.getString("firstName"); 
        if (firstName.equals("Lokesh")){ 
         result = true; 
        } 
        else{ 
         result = false; 
        } 
       } catch (JSONException e) { 
        Log.d("Web Service Error",e.getMessage()); 
        e.printStackTrace(); 
       } 
      } 
     },new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError volleyError) { 
       Log.d("JsonObject Error Response",volleyError.toString()); 
      } 
     }); 
     request.setRetryPolicy(new DefaultRetryPolicy(500000, 
       DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
       DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     AppController.getInstance().addToRequestQueue(request); 
     return result; 
    } 
} 

但它是給我排球超時錯誤。以下是Logcat

D/JsonObject Error Response﹕ com.android.volley.TimeoutError 

請讓我知道如果我做錯了。這是我在stackoverflow關於Android的第一個問題。

+0

你確定你連接到本地主機?您的服務器是否在端口8080處偵聽?你的防火牆關閉了嗎? – mmlooloo 2014-09-23 15:08:45

+0

你有沒有得到任何解決方案? – 2015-11-17 06:52:31

回答

15

這爲我工作:

request.setRetryPolicy(new RetryPolicy() { 
      @Override 
      public int getCurrentTimeout() { 
       return 50000; 
      } 

      @Override 
      public int getCurrentRetryCount() { 
       return 50000; 
      } 

      @Override 
      public void retry(VolleyError error) throws VolleyError { 

      } 
     }); 

您可以更改時間。

+2

或更短:request.setRetryPolicy(new DefaultRetryPolicy( 50000, 5, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); – marmor 2016-09-21 12:27:09

4
com.android.volley.TimeoutError 

在75%的情況下,這種錯誤發生是由於連接問題 '

如果你是本地主機或本地服務器上測試

檢查防火牆關閉

0

凌空拋出timeouterror時它無法連接到請求中提供的網址。原因可能是:

1)連接。 2)網址無效。

嘗試運行它emulator.It應該在模擬器上工作作爲emualator運行同一臺機器上,並且具有相同的IP您的WAMP上運行。

爲了使它在真機上工作,你的設備連接到同一個無線局域網作爲你的wampserver上運行。如果沒有連接到同一個無線局域網,你必須將你的php腳本存放到網上。要做到這一點,有許多免費的網絡託管網站,如https://www.000webhost.com/可用檢查出來。

希望得到這個幫助!

2
String url = "https://api.joind.in/v2.1/events?start=" + start + "&resultsperpage=20&format=json"; 
Log.i("DREG", "onLoadMoreItems: " + url); 
final StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
     new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       // Add Code Here 
      } 
     }, 
     new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       if (error instanceof NetworkError) { 
       } else if (error instanceof ServerError) { 
       } else if (error instanceof AuthFailureError) { 
       } else if (error instanceof ParseError) { 
       } else if (error instanceof NoConnectionError) { 
       } else if (error instanceof TimeoutError) { 
        Toast.makeText(getContext(), 
          "Oops. Timeout error!", 
          Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 
); 
stringRequest.setRetryPolicy(new DefaultRetryPolicy(
     10000, 
     DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
     DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
requestQueue.add(stringRequest);