Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过POST请求。间谍安全。Rest模板。杰克逊转换器_Java_Android_Json_Spring_Jackson - Fatal编程技术网

Java 通过POST请求。间谍安全。Rest模板。杰克逊转换器

Java 通过POST请求。间谍安全。Rest模板。杰克逊转换器,java,android,json,spring,jackson,Java,Android,Json,Spring,Jackson,我是Spring框架中的begginer,我想问你一个问题。 我如何通过正确的POST请求在DB中注册我的用户 我有一个Android客户端,我找到了使用web服务的唯一方法。 我正在使用AsyncTask管理请求 但我不知道如何通过我的用户类发送POST请求,以便在数据库中注册他。 数据库逻辑已经完成 我请求您帮助我如何发布请求以及如何在服务器上管理他 这是我的代码: 服务器端,用户控制器: @RestController @RequestMapping("/user") public cla

我是Spring框架中的begginer,我想问你一个问题。 我如何通过正确的POST请求在DB中注册我的用户

我有一个Android客户端,我找到了使用web服务的唯一方法。 我正在使用AsyncTask管理请求

但我不知道如何通过我的
用户
类发送POST请求,以便在数据库中注册他。
数据库逻辑已经完成

我请求您帮助我如何发布请求以及如何在服务器上管理他

这是我的代码:

服务器端,用户控制器:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @Autowired
    private SecurityService securityService;

    @Autowired
    private UserValidator userValidator;


    @RequestMapping(value = "/registration", method = RequestMethod.POST)
    @ResponseBody
    public User registration(@RequestBody User user, BindingResult bindingResult, Model model) {
        userValidator.validate(user, bindingResult);// here is validate logic
        if (bindingResult.hasErrors()) {
            //What should i return here to my Android client ?
        }
        userService.save(user);
        securityService.autoLogin(user.getUserName(), user.getConfirmPassword());
        return user;
    }

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String login(Model model, String error, String logout) {
        if (error != null) {
            model.addAttribute("error", "Username or password is incorrect.");
        }

        if (logout != null) {
            model.addAttribute("message", "Logged out successfully.");
        }

        return "login";// what should I return to the client ???
        //How my android client will understand that user is loged in ?
    }
}
接下来是客户端(这里是一些MVP逻辑,但不是nvm):

在服务器端:

2254021 [http-apr-8080-exec-2] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Unrecognized field "confirmationPassword" (class com.webserverconfig.user.entity.User), not marked as ignorable (4 known properties: "id", "confirmPassword", "userName", "userPassword"])
 at [Source: java.io.PushbackInputStream@2cbfcb7c; line: 1, column: 26] (through reference chain: com.webserverconfig.user.entity.User["confirmationPassword"]); nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "confirmationPassword" (class com.webserverconfig.user.entity.User), not marked as ignorable (4 known properties: "id", "confirmPassword", "userName", "userPassword"])
 at [Source: java.io.PushbackInputStream@2cbfcb7c; line: 1, column: 26] (through reference chain: com.webserverconfig.user.entity.User["confirmationPassword"])

有什么帮助吗?

您没有共享您的
用户
bean,但错误日志显示您试图访问
确认密码
字段,而只有
确认密码
。检查你的bean的getter名称。

是的,我已经修复了它。现在注册方法运行良好。我是a,只是登录方法有问题。
W/RestTemplate: POST request for "http://192.168.0.80:8080/user/registration" resulted in 400 (Bad Request); invoking error handler
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                  Process: com.example.user.userauthorisation, PID: 4676
                  java.lang.RuntimeException: An error occured while executing doInBackground()
                      at android.os.AsyncTask$3.done(AsyncTask.java:300)
                      at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
                      at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
                      at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                      at java.lang.Thread.run(Thread.java:818)
                   Caused by: org.springframework.web.client.HttpClientErrorException: 400 Bad Request
                      at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
                      at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:585)
                      at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:541)
                      at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:499)
                      at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:348)
                      at com.example.user.userauthorisation.createaccount.CreateAccountPresenter$CreateAccountTask.doInBackground(CreateAccountPresenter.java:42)
                      at com.example.user.userauthorisation.createaccount.CreateAccountPresenter$CreateAccountTask.doInBackground(CreateAccountPresenter.java:35)
                      at android.os.AsyncTask$2.call(AsyncTask.java:288)
                      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                      at java.lang.Thread.run(Thread.java:818) 
W/EGL_emulation: eglSurfaceAttrib not implemented
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xeb89dde0, error=EGL_SUCCESS
2254021 [http-apr-8080-exec-2] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Unrecognized field "confirmationPassword" (class com.webserverconfig.user.entity.User), not marked as ignorable (4 known properties: "id", "confirmPassword", "userName", "userPassword"])
 at [Source: java.io.PushbackInputStream@2cbfcb7c; line: 1, column: 26] (through reference chain: com.webserverconfig.user.entity.User["confirmationPassword"]); nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "confirmationPassword" (class com.webserverconfig.user.entity.User), not marked as ignorable (4 known properties: "id", "confirmPassword", "userName", "userPassword"])
 at [Source: java.io.PushbackInputStream@2cbfcb7c; line: 1, column: 26] (through reference chain: com.webserverconfig.user.entity.User["confirmationPassword"])