繁体   English   中英

JSON对象在Spring 4.16上为@RequestBody

[英]JSON Object as @RequestBody on Spring 4.16

所以我有这个android应用程序使用POST方法为jsonObjectRequest发送jsonObject(我正在使用凌空)。 JSON文件已发送,但是服务器(这是我在使用Spring btw的地方)没有响应。 代码非常像这些。

Android代码:

JSONObject jsonObject = new JSONObject(data);

final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, jsonObject, new Response.Listener<JSONObject>() {
   @Override
   public void onResponse(JSONObject response) {
      try {
          userToken = response.getString(TAG_TOKEN);
   //  blablabla

服务器代码:

@RestController
@RequestMapping("/auth/")
public class AuthController {

String userEmail;
String userPassword;

@RequestMapping(value = "/login", method = RequestMethod.POST)
public LoginResponse loginResponse(@RequestBody Auth auth){

    userEmail = auth.getEmail();
    userPassword = auth.getPassword();
// blablabla

验证对象:

public class Auth {

    private String email;
    private String password;

// blablabla

似乎服务器未从Android客户端正确接收JsonObject。 (不过,在另一种情况下,服务器能够将JSON完美地发送到android客户端)。 我正在使用spring-4.16,jackson-core,jackson-annotation,jackson-databind(2.2.2)。 提前致谢!

从您提供的代码中,我怀疑第一件事可能是JSONObject与服务器上的Auth没有相同的字段名称。 同样,用于将对象从请求映射到控制器中的对象的HttpMessageConverter可能无法正确执行其工作。

我首先尝试仅尝试从正文中接收参数,而不使用Auth对象。 如果Spring映射的结果比HttpMessageConverter ,则不是问题,如果不是@RequestBody的用法,我不能从您提供的代码中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM