私は、Springで書かれたHTTPサーバにAndroidの電話からVolleyを使用してGETリクエストを作成しようとしています。Google Volleyでリクエストパラメータを送信
私はRequest
を拡張し、そのgetParams()
metodをオーバーライドするカスタム要求を行ってきました:
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parameters = new HashMap<>();
parameters.put("email", "[email protected]");
parameters.put("password", "xxxx");
return parameters;
}
私はこのように私の要求を作っています:
GsonRequest = new GsonRequest<String>(Request.Method.GET, "http://192.168.43.15:10000/login",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
....
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
......
}
});
Log.i(TAG, new String(request.getBody()));
requestQueue.add(request);
ログイン要求があることを示していますこのパラメータを持つ:
電子メール= xxxx%40xxx.com &パスワード= xxxx &
しかし、エラーがある:
Unexpected response code 400 for http://192.168.43.15:10000/login
リクエストパラメータが送信されないように見えます。
これは私のサーバーのコードです:
@RequestMapping(path = "/login", method = RequestMethod.GET)
public ResponseEntity<String> login(@RequestParam(name = "email") String email,
@RequestParam(name = "password") String password) {
User user = repository.findByEmailAndPassword(email, password);
if (user != null) {
return new ResponseEntity("Found", HttpStatus.OK);
}
return new ResponseEntity<>("Not found", HttpStatus.OK);
}
私は私が作るときに、ブラウザのすべてからの要求がOKであるため、何かが私のAndroidデバイス上のコードが間違っていると思います。
問題がどこにあるか教えていただけますか?
あなたは、文字列の応答を返すされているので、あなたが** StringRequest **の代わりに、** JSONRequest **使用することができますように。 – Frank
あなたはいくつかのデータをサーバーに送信したいが、GETメソッドを使ってPOSTメソッドで試してみると、データベースが強制的なパラメーターを受け取らないときにエラーが発生します。 –