Ошибка таймаута волейбола
Я пытаюсь воспользоваться услугой отдыха с помощью 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.
Я должен был сделать следующее.
- Перейти в настройки системы
- Перейти к безопасности и конфиденциальности
- Выберите вкладку брандмауэра и нажмите на параметры брандмауэра
- Разрешить входящее соединение для 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.