Postman中简单POST请求映射出现415 Unsupported Media Type错误
解决Postman调用Spring Boot POST接口出现415 Unsupported Media Type错误
你的BookController代码逻辑本身无问题:
package com.example.manytomany.controller; import com.example.manytomany.entity.Book; import com.example.manytomany.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; @RestController @RequestMapping("/books") public class BookController { @Autowired private BookService bookService; @PostMapping public Book createBook(@RequestBody Book book) { return bookService.saveBook(book); } @GetMapping public List<Book> getBooks() { return bookService.getAllBooks(); } @GetMapping("/{id}") public Optional<Book> getBookById(@PathVariable Long id) { return bookService.getBookById(id); } @DeleteMapping("/{id}") public void deleteBook(@PathVariable Long id) { bookService.deleteBook(id); } }
出现415错误的核心原因是Spring无法解析你发送的请求体,下面是几个必查的解决点:
检查Postman请求头的Content-Type
进入Postman的Headers标签,添加Content-Type键,值设置为application/json。如果没设置这个头,Spring不知道要按JSON格式解析请求体,直接返回415。校验请求体的JSON格式
在Postman的Body标签选择raw格式,输入合法的JSON内容,注意:- 所有键名必须用双引号,不能用单引号
- 字段名要和Book实体类的属性完全一致(大小写敏感)
示例JSON:
{ "title": "Java核心技术", "author": "Cay S. Horstmann" }确认项目依赖是否完整
如果是Spring Boot项目,确保pom.xml(Maven)或build.gradle(Gradle)中引入了spring-boot-starter-web依赖,它会自动包含JSON解析所需的Jackson库。如果是手动管理依赖,要确保添加jackson-databind:
Maven依赖示例:<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency>检查Book实体类的配置
Jackson解析JSON时需要:- 实体类有无参构造器:
public Book() {} - 每个需要接收值的字段都有对应的setter方法,比如
public void setTitle(String title) { this.title = title; }
- 实体类有无参构造器:
内容的提问来源于stack exchange,提问作者Harini Gangainoble
相关产品推荐
相关产品推荐

