2016-06-21 2 views
0

Сомнения Подобно Time out error volleyПочему Волей бросает исключение тайм-аута в моем случае?

Я реализую Войти Зарегистрирован экран с использованием 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); 
     } 
    }); 

Кроме того, мой Войти Ссылка

http://10.0.2.2/Login.php 

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

+0

Это происходит, когда залп не может подключиться к сервер. Это может происходить из-за некоторых настроек прокси-сервера, которые вы сделали в своем телефоне. Если нет, то проверьте у своего веб-браузера, доступна ли эта ссылка или нет. Я подозреваю, что это не так. –

+0

Да, это не так. Так что я не могу использовать локальный хост и разместить там свою базу данных? –

+0

Запуск кода на эмуляторе будет работать –

ответ

0

Вы не можете получить доступ к локальному хосту через свой телефон. Он попытается подключиться к 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