2016-06-21 99 views
0

怀疑我在执行使用本地主机 它实现了登录的按钮登录注册画面类似 Time out error volleyVolley为什么会在我的情况下抛出超时异常?

具有的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地址更改为PC的IP地址。 (更改10.0.2.2到您的PC的IP地址)

有关详细信息,你可以看看这里:

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

相关问题