Ich weiß, dass diese Frage möglicherweise mehrmals gestellt wurde, aber keine der Lösungen scheint für mich zu arbeiten. In meiner Andy-Volley-Post-Anfrage gebe ich Benutzernamen und Passwort ein, aber jedes Mal, wenn ich auf login klicke, sage ich immer "ungültiger Benutzername und Passwort", obwohl die Zugangsdaten korrekt sind und es gut mit dem Postboten klappt. Hier ist mein Code unten:Android-Volley Beitrag Fehler beim Arbeiten mit Node.js
Anmeldung Node.js
router.post('/login', function(req,res,next){
var user = {
username: req.body.username,
password: req.body.password
};
connection.query("SELECT id, fullname, username, email_address, createdAt FROM users WHERE username=? OR email_address=? AND password=? LIMIT 1",[user.username, user.username, user.password], function(err, rows, field){
if(err) throw err;
if(rows.length > 0){
res.json({
success: '1',
message: 'Login Successful',
id: rows[0],
fullname: rows[1],
username: rows[2],
email: rows[3],
createdAt: rows[4]
});
}else{
res.json({
success: '0',
message: 'Invalid username or password'
});
}
});
});
Anmeldung auf Client-Seite (Android):
private void login(final String uname, final String upass) {
//192.168.1.101:5000/api/users/1
final String url = "http://192.168.1.100:5000/api/users/login";
RequestQueue queue = Volley.newRequestQueue(getActivity());
JsonObjectRequest rq = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if(response.getString("success") != null) {
final int success = Integer.parseInt(response.getString("success"));
if (success == 1) {
JSONObject uid = response.getJSONObject("id");
int id = uid.getInt("id");
String fullname = uid.getString("fullname");
String username = uid.getString("username");
String email = uid.getString("email");
String createdAt = uid.getString("createdAt");
SuperToast successToast = new SuperToast(getActivity(), Style.getStyle(Style.BLUE, SuperToast.Animations.FLYIN));
//successToast.setText(id + " " + fullname + " " + username + " " + email + " " + createdAt);
successToast.setText(response.getString("message"));
successToast.setDuration(SuperToast.Duration.LONG);
successToast.setGravity(Gravity.CENTER, 0, 0);
successToast.show();
} else if (success == 0) {
SuperToast errorToast = new SuperToast(getActivity(), Style.getStyle(Style.BLUE, SuperToast.Animations.FLYIN));
errorToast.setText(response.getString("message"));
errorToast.setDuration(SuperToast.Duration.MEDIUM);
errorToast.setGravity(Gravity.CENTER, 0, 0);
errorToast.show();
} else {
SuperToast errorToast = new SuperToast(getActivity(), Style.getStyle(Style.BLUE, SuperToast.Animations.FLYIN));
errorToast.setText("Invalid Request");
errorToast.setDuration(SuperToast.Duration.MEDIUM);
errorToast.setGravity(Gravity.CENTER, 0, 0);
errorToast.show();
}
}
} catch (JSONException ex) {
ex.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
SuperToast.create(getActivity(), error.getMessage(), SuperToast.Duration.LONG).show();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("username", uname);
params.put("password", upass);
return params;
}
};
//MySingleton.getInctance(getActivity().getApplicationContext()).addToRequestQueue(rq);
queue.add(rq);
}
Jede Hilfe wird sehr geschätzt, danke im Voraus.
Versuchte, dass es nicht – codex
funktionierte Was ist die Antwort? –
Es gibt keine Antwort – codex