【发布时间】:2020-01-07 09:35:53
【问题描述】:
我正在使用 Spring MVC 和 Java8 构建 Restful Web 服务,但由于以下错误,我无法执行 Post 请求:
服务器拒绝此请求,因为请求实体的格式不受所请求方法的请求资源支持。
这是我的控制器类
@RestController
public class SpringRestWebService {
@RequestMapping(value = "/employee",method = RequestMethod.POST,consumes="application/json")
public ResponseEntity<Employee> addEmployee(@RequestBody final Employee employee)
{
return new ResponseEntity<Employee>(HttpStatus.OK);
}
}
这是包含用于 JSON 解析的杰克逊库的 POM 文件。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.inov8</groupId>
<artifactId>MavenRestWebServices</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
</project>
模型类:员工
public class Employee {
private String id;
private String name;
public Employee()
{
}
public Employee(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注意:我将 application/json 作为内容类型包含在请求标头中,此外,我能够成功执行 Get 请求,问题仅在于 POST 请求。
邮递员请求
我已经尝试了互联网上所有可用的选项,但我仍然面临错误。
【问题讨论】:
-
我们需要更多关于客户端的信息。你是如何创建你的请求的?你有客户端代码吗?
-
我正在使用 Postman 访问服务
-
您能否添加一张显示您的 Postman 请求的屏幕截图?
-
如果以原始模式传递请求正文,请将文本更改为 json
-
您是否将 RestWebServices 设置为端点的前缀?
标签: java spring rest spring-boot spring-mvc