2014-09-23 15 views
9

Tôi đang cố gắng sử dụng dịch vụ nghỉ ngơi bằng Volley.Lỗi Timeout 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; 
    } 
} 

Nhưng nó đang cho tôi lỗi hết thời gian chờ. Dưới đây là Logcat

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

Vui lòng cho tôi biết nếu tôi làm sai. Đây là câu hỏi đầu tiên của tôi trong stackoverflow liên quan đến Android.

+0

bạn có chắc chắn về việc kết nối với máy chủ cục bộ của mình không? sao máy chủ của bạn đang nghe ở cổng 8080? tường lửa của bạn có tắt không? – mmlooloo

+0

Bạn có nhận được giải pháp nào không? –

Trả lời

15

này đã làm việc cho tôi:

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

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

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

      } 
     }); 

Bạn có thể thay đổi thời điểm đó.

+2

hoặc ngắn hơn: request.setRetryPolicy (new DefaultRetryPolicy ( 50000, 5, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); – marmor

4
com.android.volley.TimeoutError 

Trong 75% các trường hợp lỗi này xảy ra do vấn đề kết nối '

nếu bạn đang thử nghiệm trên máy chủ localhost hoặc địa phương

Kiểm tra tường lửa tắt

0

Volley ném timeouterror khi nó không thể kết nối với url được cung cấp theo yêu cầu. lý do có thể là:

1) kết nối. 2) Url không hợp lệ.

Hãy thử chạy trên trình mô phỏng. Nó sẽ hoạt động trên trình mô phỏng như bộ tạo biểu tượng chạy trên cùng một máy và có cùng địa chỉ IP giống như trình chạy của bạn đang chạy.

Để làm cho thiết bị hoạt động trên thiết bị thực, hãy kết nối thiết bị của bạn với cùng một mạng WLAN như máy wampserver đang chạy. Nếu không kết nối với cùng một mạng WLAN, bạn phải lưu trữ các tập lệnh php của mình lên web. Để làm điều này, có rất nhiều trang web lưu trữ miễn phí như https://www.000webhost.com/ có sẵn để kiểm tra chúng.

Hy vọng trợ giúp này!

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