亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

com.android.volley.NoConnectionError:

com.android.volley.NoConnectionError:

藍山帝景 2022-06-30 11:25:31
我需要一些幫助。這是我的活動登錄,當點擊登錄按鈕時,他給了我一個錯誤:com.android.volley.NoConnectionError:java.net.ConnectException:Connection refused。我使用 2 個權限<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>有我的登錄代碼,在頂部我們有變量:private EditText mPasswordView, mUserName;    private ProgressBar loading;    private Button btnLogin;    private static String URL_LOGIN = "http://localhost/ligacao_bd/login.php";    private View mProgressView;    private View mLoginFormView;有我的按鈕登錄設置:@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_login);    loading = findViewById(R.id.loading);    // Set up the login form.    mUserName = (EditText) findViewById(R.id.textUserName);    mPasswordView = (EditText) findViewById(R.id.textPassword);    btnLogin = (Button) findViewById(R.id.btnLogin); // login button    btnLogin.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View view) {            String email = mUserName.getText().toString().trim();            String Pwd = mPasswordView.getText().toString().trim();            if(!email.isEmpty() || !Pwd.isEmpty()){                Login(email, Pwd);            }else{               mUserName.setError("Insira nome de utilizador");               mPasswordView.setError("Insira palavra-passe");            }        }    });
查看完整描述

3 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

假設您在 Android 模擬器上運行此代碼,并且您調用的任何后端服務也在 localhost 上運行,請將您的登錄地址更改為:


//8080 being the port that localhost is assigned to - change it if needs be

private static String URL_LOGIN = "http://10.0.2.2:8080/ligacao_bd/login.php";

http://10.0.2.2:xxxx是作為主機環回接口的特殊別名的 IP(開發機器上的 127.0.0.1)


查看完整回答
反對 回復 2022-06-30
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

這是一個使用 volley 的工作字符串請求。根據需要更改此設置。如果它不起作用,那么問題出在您的 login.php 方面


loginButton.setOnClickListener(new View.OnClickListener() {

  @Override

  public void onClick(View v) {

    StringRequest request = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>(){

      @Override

      public void onResponse(String s) {

        if(s.equals("Logged In")){

          Intent intent = new Intent(Login.this, Home.class);

          startActivity(intent);

        }

        else{

          Toast.makeText(Login.this, "Incorrect Details", Toast.LENGTH_LONG).show();

        }

      }

    }, new Response.ErrorListener(){

      @Override

      public void onErrorResponse(VolleyError volleyError) {

        Toast.makeText(Login.this, "Some error occurred -> "+volleyError, Toast.LENGTH_LONG).show();;

      }

    }) {

      @Override

      protected Map<String, String> getParams() throws AuthFailureError {

        Map<String, String> parameters = new HashMap<String, String>();

        parameters.put("email", emailBox.getText().toString());

        parameters.put("password", passwordBox.getText().toString());

        return parameters;

      }

    };


    RequestQueue rQueue = Volley.newRequestQueue(Login.this);

    rQueue.add(request);

  }

});


查看完整回答
反對 回復 2022-06-30
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

您還需要在代碼中請求權限。請參閱:https ://developer.android.com/training/permissions/requesting


在發出 Web 請求之前,您只需要添加此代碼:


requestPermission(Manifest.permission.INTERNET, PERMISSION_INTERNET);

requestPermission(Manifest.permission.ACCESS_NETWORK_STATE, PERMISSION_ACCESS_NETWORK_STATE);

在其他地方這段代碼:


private static final int PERMISSION_INTERNET = 1;

private static final int PERMISSION_ACCESS_NETWORK_STATE = 2;


private void requestPermission(Manifest.permission permission, int requestId) {

    if (ContextCompat.checkSelfPermission(thisActivity,

        permission)

        != PackageManager.PERMISSION_GRANTED) {

        ActivityCompat.requestPermissions(thisActivity,

                new String[]{permission},

                requestId);

    }

}


@Override

public void onRequestPermissionsResult(int requestCode,

        String permissions[], int[] grantResults) {

    switch (requestCode) {

        case PERMISSION_INTERNET: {

            if (grantResults.length <= 0

                || grantResults[0] != PackageManager.PERMISSION_GRANTED) {

requestPermission(Manifest.permission.INTERNET, PERMISSION_INTERNET);

            }

            return;

        }

        case PERMISSION_ACCESS_NETWORK_STATE: {

            if (grantResults.length <= 0

                || grantResults[0] != PackageManager.PERMISSION_GRANTED) {

requestPermission(Manifest.permission.ACCESS_NETWORK_STATE, PERMISSION_ACCESS_NETWORK_STATE);

            }

            return;

        }

    }

}


查看完整回答
反對 回復 2022-06-30
  • 3 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號