所以我有这个android应用程序,使用POST方法为jsonObjectRequest(我使用volley)发送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)。提前谢谢!
答案 0 :(得分:0)
从您提供的代码中我首先怀疑的可能是JSONObject与服务器上的Auth没有相同的字段名称。
此外,用于将对象从请求映射到控制器中的对象的HttpMessageConverter
可能无法正确执行其工作。
我首先尝试从没有Auth
对象的身体接收参数。如果Spring映射的问题比问题HttpMessageConverter
好,如果不是@RequestBody
的使用,我不能使用你提供的代码。