2016-06-21 94 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

相關問題