2017-06-18 14 views
0

私は、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デバイス上のコードが間違っていると思います。

問題がどこにあるか教えていただけますか?

+0

あなたは、文字列の応答を返すされているので、あなたが** StringRequest **の代わりに、** JSONRequest **使用することができますように。 – Frank

+0

あなたはいくつかのデータをサーバーに送信したいが、GETメソッドを使ってPOSTメソッドで試してみると、データベースが強制的なパラメーターを受け取らないときにエラーが発生します。 –

答えて

関連する問題