Почему Волей выбрасывает исключение тайм-аута в моем случае?

Сомнение, подобное
Залп ошибки тайм-аута

Я внедряю экран регистрации с помощью Localhost
Кнопка, которая реализует вход в систему, имеет прослушиватель onClick как

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("lala","1");
request=new StringRequest(Request.Method.POST, loginURL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("lala","3");
try {
JSONObject jsonObject=new JSONObject(response);
boolean sucess=jsonObject.getBoolean("sucess");
if(sucess)
{
Toast.makeText(getApplicationContext(),jsonObject.getString("username").toString()+" Welcome",Toast.LENGTH_LONG).show();
Log.d("lala","4");
}
else
{
Toast.makeText(getApplicationContext()," Failed ",Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
Log.d("lala","5");
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("lala","2");
Log.e("YOUR_APP_LOG_TAG", "I got an error", error);

}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String,String> hashMap= new HashMap<String, String>();
hashMap.put("username",e1.getText().toString());
hashMap.put("password",e2.getText().toString());
return hashMap;

}
};

requestQueue.add(request);
}
});

Также мой логин URL

http://10.0.2.2/Login.php

PhP работает отлично, так как я пробовал и тестировал его с помощью Postman. Кто-нибудь может указать мою ошибку здесь? Я посмотрел и посмотрел и не могу найти ни одного.

0

Решение

Вы не можете получить доступ к localhost через свой телефон. Он попытается подключиться к 10.0.2.2, но не найдет его, потому что он работает на вашем компьютере, а не на вашем телефоне Android.

Я бы порекомендовал использовать такой сервис, как https://ngrok.com/download переадресовать ваш локальный IP-адрес на общедоступный адрес, к которому вы можете получить доступ со своего телефона.

0

Другие решения

Чтобы добиться того, что вы пытаетесь сделать, у вас есть следующие варианты:

  1. Запустите ваш код в эмуляторе без каких-либо изменений, он должен работать.
  2. Если вы хотите запустить на телефоне, измените IP-адрес на IP-адрес вашего ПК.
    (Измените 10.0.2.2 на IP-адрес вашего компьютера)

Для более подробной информации вы можете посмотреть здесь:

https://futurestud.io/blog/how-to-run-an-android-app-against-a-localhost-api

0

По вопросам рекламы [email protected]