为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号