【发布时间】:2019-10-01 14:24:48
【问题描述】:
我正在学习 Spring-Boot 的功能,并且还使用 Postman 完成了这些功能。但是当我运行代码时,我在 Postman 上收到 400 Bad Request Error,如下所示: “缺少所需的请求正文:公共 org.springframework.http.ResponseEntity”。我是否错过了某个属性或编码完全错误?
@RestController
@RequestMapping("/api/board")
@CrossOrigin
public class ProjectTaskController {
@Autowired
private ProjectTaskService projectTaskService;
@PostMapping("")
public ResponseEntity<?> addPTToBoard( @Valid @RequestBody ProjectTask projectTask, BindingResult result){
if(result.hasErrors()) {
Map<String, String> errorMap= new HashMap<>();
for(FieldError error: result.getFieldErrors()) {
errorMap.put(error.getField(), error.getDefaultMessage());
}
return new ResponseEntity<Map<String, String>>(errorMap, HttpStatus.BAD_REQUEST);
}
ProjectTask newPT= projectTaskService.saveOrUpdateProjectTask(projectTask);
return new ResponseEntity<ProjectTask>(newPT, HttpStatus.CREATED);
}
projectTask 代码,它也有 getter 和 setter。
@Entity
public class ProjectTask {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private long id;
@NotBlank(message = "summary cannot be blank")
private String summary;
private String acceptanceCriteria;
private String status;
public ProjectTask() {
}
【问题讨论】:
-
你能添加你的http请求吗?您确定要传递请求正文吗?
-
@NaderHajlaoui 我已经更新了我的问题
-
您需要提供请求正文,否则您将始终有 400 个错误请求。因为当您查看端点签名
@Valid @RequestBody ProjectTask projectTask时,我们清楚地看到需要projectTask作为输入。 -
@NaderHajlaoui 我如何提供你所说的内容?
-
调用endpoint的时候需要提供request body,如果使用postman,需要在body里面放一些数据
application/json,请参考我的回答,我提供了一个示例请求代码,你可以在你的邮递员中导入它。
标签: java spring-boot postman