【发布时间】:2021-04-15 01:11:03
【问题描述】:
我在使用 Kotlin 的 Spring Boot 中遇到问题
我有一个接受所有主要内容类型的函数,定义如下:
@PostMapping(
value = ["/users/new"],
consumes = [
MediaType.APPLICATION_JSON_VALUE,
MediaType.APPLICATION_XML_VALUE,
MediaType.MULTIPART_FORM_DATA_VALUE,
MediaType.APPLICATION_FORM_URLENCODED_VALUE]
)
fun registerNewUser(
@RequestHeader("X-Forward-For") ipAddress: String?,
newUser: NewUser,
request: HttpServletRequest
): ResponseEntity<ObjectNode> {
var realIPAddress = ipAddress
if (realIPAddress == null) {
realIPAddress = request.remoteAddr
}
return userService.registerUser(realIPAddress!!, newUser)
}
这是我的 NewUser 类在 kotlin 中的定义方式
data class NewUser(val email: String?, val password: String?)
这是我在注册功能中的检查方式
if (!StringUtils.hasText(newUser.email)) {
return responseHandler.errorResponse(
HttpStatus.BAD_REQUEST,
"Please provide an email address"
)
}
现在,当我使用邮递员甚至 axios 发送发布请求时,我不断收到错误,如下面的屏幕截图所示
只有在未提供电子邮件地址时才应显示该错误消息。但是您可以清楚地看到,电子邮件地址是在 JSON Payload 中提供的。
可能出了什么问题?
注意:这在 Content-Type 为 application/x-www-form-urlencoded 时有效,但在 Content-Type 为 application/json 时无效
【问题讨论】:
标签: spring spring-boot spring-mvc kotlin spring-data