我正在尝试使用我的Android手机中的Volley向在Spring上编写的HTTP服务器发出GET请求。
我做了一个自定义请求,扩展Request
并覆盖其getParams()
元素:
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parameters = new HashMap<>();
parameters.put("email", "xxxx@xxx.com");
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&安培;
但是有一个错误:
的意外回复代码400
看起来似乎没有发送请求参数。
这是我的服务器代码:
@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);
}
我认为Android设备上的代码有问题,因为当我从浏览器发出请求时,一切正常。
有人可以告诉我问题在哪里吗?