Ошибка таймаута волейбола

Я пытаюсь воспользоваться услугой отдыха с помощью 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.

Ответ 1

Это сработало для меня:

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

com.android.volley.TimeoutError

В 75% случаях эта ошибка возникает из-за проблемы с подключением

если вы тестируете локальный или локальный сервер

Отключить брандмауэр

Ответ 3

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

Ответ 4

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

Ответ 5

Добавьте следующее после вашего прослушивателя ошибок

myRequest.setRetryPolicy(new DefaultRetryPolicy(
    MY_SOCKET_TIMEOUT_MS, 
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

Ответ 6

Волейбол бросает timeouterror, когда он не может подключиться к url, предоставленному в запросе. причинами могут быть:

1) подключение. 2) Url недействителен.

Попробуйте запустить его на эмуляторе. Он должен работать на эмуляторе, когда эмулятор запускается на одном компьютере и имеет тот же IP-адрес, что и ваш Wamp.

Чтобы он работал на реальном устройстве, подключите свое устройство к той же WLAN, что и ваш сервер wampserver. Если вы не подключены к той же WLAN, вы должны разместить свои php-скрипты в Интернете. Для этого есть много бесплатных веб-сайтов, таких как https://www.000webhost.com/, чтобы проверить их.

Надеюсь на эту помощь!

Ответ 7

На Macbook я запускал приложение Django, написанное на python3.X.
Я должен был сделать следующее.

  1. Перейти в настройки системы
  2. Перейти к безопасности и конфиденциальности
  3. Выберите вкладку брандмауэра и нажмите на параметры брандмауэра
  4. Разрешить входящее соединение для Python 3.7

enter image description here

Ответ 8

Моя проблема была решена, когда я отключил брандмауэр, но мне всегда нужно работать с отключенным файрболом? Как я могу обойти это?

Ответ 9

Убедитесь, что ваш IPv4-адрес в URL-адресе правильный и не был изменен.

Ответ 10

То же самое произошло со мной, потому что я не запустил свой Xampp. Я думаю, что может быть то же самое.

Ответ 11

stringRequest.setRetryPolicy(new DefaultRetryPolicy(
                6000,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)
        );

Ответ 12

Это случилось со мной. Я решил, что проблема произошла, потому что я не запускал Apache и MySQL в XAMPP.