rest - Spring Boot 406“不可接受”
问题描述
我正在尝试使用版本为 2.0.5.RELEASE 的 Spring Boot 构建 RESTful API。这是我的控制器:
// Just for test
@RestController
public class LoginController {
@RequestMapping(value = "/user/login",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> login(@RequestParam(name = "username") String username,
@RequestParam(name = "password") String password) {
ResponseEntity<RESTResponse> response = null;
if(username.equals("123") && password.equals("123")){
// success
response = new ResponseEntity<>(RESTResponse.generateResponse(
null, "successful", "Log in successfully."), HttpStatus.OK);
} else {
// failed
response = new ResponseEntity<>(RESTResponse.generateResponse(
null, "failed", "Your username or password is incorrect."), HttpStatus.OK);
}
return response;
}
}
这是 Spring MVC 配置类:
@Configuration
public class MyMvcConfig implements WebMvcConfigurer{
/**
* CORS configuration
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins(ALL)
.allowedMethods(ALL)
.allowedHeaders(ALL)
.allowCredentials(true);
}
}
控制器应该响应 JSON 数据。我使用 Postman 来测试控制器。控制器可以接收请求参数并正常工作,但邮递员得到了一个奇怪的响应:
{
"timestamp": "2018-09-16T05:55:14.860+0000",
"status": 406,
"error": "Not Acceptable",
"message": "Could not find acceptable representation",
"path": "/api/user/login"
}
有人可以帮忙吗?
解决方案
确保你有这些罐子并Accept: application/json
在邮递员标题中使用 Header
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.1.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
推荐阅读
- python - 在字典中查找数字并在 python 中打印
- objective-c - 以编程方式获取在 Safari 或 Google chrome 中打开的选项卡的标题或数量
- terminal - 在 linux mint 从终端更新软件包时出错
- asp.net-core - 使用 Azure AD 身份验证时访问我的应用服务中的特定 URL
- r - Is there an R function to combine multiple columns from the same data frame into the same column?
- laravel - 根据另一个字段的值显示/隐藏字段
- excel - 在所附的第一张图片中获得相同的结果
- html - 使用 Angular 和 CSS 移除和浏览器边缘之间的外边距
- c++ - 努力设置 VSCode 以在 macOS 上编译 c++17 或更高版本?
- database - 关系类型属性可以是派生属性吗?