为什么Volley会在我的案例中抛出超时异常?

时间:2016-06-21 19:14:48

标签: php android android-volley timeoutexception

怀疑类似于 Time out error volley

我正在使用Localhost实现登录注册屏幕 实现登录的Button具有onClick Listener as

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测试它。有人能指出我的错误吗?我看了看,找不到任何东西。

2 个答案:

答案 0 :(得分:0)

您无法通过手机访问localhost。它将尝试连接到10.0.2.2,但找不到它,因为它在您的计算机上运行,​​而不是您的Android手机。

我建议您使用https://ngrok.com/download之类的服务将您的本地IP地址转发到您可以通过手机访问的公共地址。

答案 1 :(得分:0)

要实现您的目标,您可以选择以下选项:

  1. 在模拟器中运行您的代码而不做任何更改,它应该可以正常工作。
  2. 如果您想在手机上运行,​​请将IP地址更改为您PC的IP地址。 (将10.0.2.2更改为您的PC的IP地址)
  3.   

    有关详细信息,请查看此处:

         

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