3 回答

TA貢獻(xiàn)1854條經(jīng)驗 獲得超8個贊
假設(shè)您在 Android 模擬器上運(yùn)行此代碼,并且您調(diào)用的任何后端服務(wù)也在 localhost 上運(yùn)行,請將您的登錄地址更改為:
//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是作為主機(jī)環(huán)回接口的特殊別名的 IP(開發(fā)機(jī)器上的 127.0.0.1)

TA貢獻(xiàn)1809條經(jīng)驗 獲得超8個贊
這是一個使用 volley 的工作字符串請求。根據(jù)需要更改此設(shè)置。如果它不起作用,那么問題出在您的 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);
}
});

TA貢獻(xiàn)1842條經(jīng)驗 獲得超13個贊
您還需要在代碼中請求權(quán)限。請參閱:https ://developer.android.com/training/permissions/requesting
在發(fā)出 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;
}
}
}
添加回答
舉報