Ich habe ein Problem mit Volley-Anfrage - Ich möchte GET (auch eine andere ähnliche POST) Anfrage mit JSONObject
param (Benutzer mit Passwort und Login) zu autorisieren Benutzer und Senden Sie die vollständigen Benutzerdaten zurück. Obwohl ich bei der Fehlersuche sehen, die mRequestBody
richtig JSON
ist, aber ich kann es von meinem Controller nicht empfangen -Volle GET JsonObjectRequest mit JSONObjectParameter funktioniert überhaupt nicht
private void processLogin() throws JSONException {
this.user.setLogin(this.loginText.getText().toString());
this.user.setPassword(this.passwordText.getText().toString());
final JSONObject jsonObject = new JSONObject(new Gson().toJson(this.user));
final JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, UrlHelper.loginUrl, jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
user = new Gson().fromJson(response.toString(), User.class);
if (user.getUserId().equals(getResources().getString(R.string.ERROR))) {
onLoginFailed();
} else {
onLoginSuccess(user);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
return headers;
}
};
VolleySingleton.getInstance(this).addToRequestQueue(request);
}
Controller-Methode:
@RequestMapping(value = "/loginTest", method = RequestMethod.GET, produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public User someMethod(@RequestBody User user) throws SQLException {
return userService.authenticateUser(user.getLogin(), user.getPassword());
}
Ohne Anmerkung @RequestBody
ich es Prozess, aber Benutzer in param
leer ist, also verarbeite ich User mit null Passwort und login. Kürzlich habe ich es durch StringRequest
Bitte, hilf mir. :)
Okey, also ändere ich meine Methode zu POST, benutze StringRequest und implementiere getBodyContentType() und getBody() Methoden dafür und ich verbessere meine Controller Methode. Danke für Ihre Hilfe :) – agataguli