我发送put请求一直报400怎么回事

来源:3-5 修改和删除请求

BestLater

2018-03-08

@Test
public void whenUpdateUser() throws Exception {
    Date date = new Date(LocalDateTime.now().plusYears(1).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
    String content = "{\"id\":1,\"password\":\"123456\",\"age\":25,\"birthday\":"+date+"}";
    String str = mockMvc.perform(put("/user/1")
            .contentType(MediaType.APPLICATION_JSON_UTF8)
            .content(content))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$.id").value(1))
            .andReturn().getResponse().getContentAsString();
    System.out.println(str);
}


controller:
@PutMapping("/{id:\\d+}")
@JsonView(User.UserDiteleView.class)
public User updateUser(@RequestBody @Valid User user, BindingResult error) {
    if (error.hasErrors()) {
        error.getAllErrors().forEach(err -> System.out.println(err.getDefaultMessage()));
    }

    return user;
}


写回答

1回答

BestLater

提问者

2018-03-08

找到怎么回事了,因为前段传的是字符串,不能直接把date对象放进去,代码改成

String content = "{\"id\":1,\"password\":\"123456\",\"age\":25,\"birthday\":"+date.getTime()+"}";

1
0

Spring Security技术栈开发企业级认证与授权

Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全

2662 学习 · 1561 问题

查看课程