java - Spring Webflux:仍然需要可选的 RequestPart/RequestParam?
问题描述
我正在尝试使用可选的请求参数/请求部分,但是当我不提供可选参数时,我的请求就会无限期地挂起。
@RestController
@RequestMapping("/service")
class MyController {
@PostMapping
fun print(@RequestPart("name", required = false) name: String) {
if (name != null)
print(name)
else
print("grr")
}
}
如果我name
在请求中提供参数,它不再肯定挂在邮递员中,请求通过。但是当我不提供参数name
并打印“grr”时,我希望它无论如何都会通过。
当您添加另一个所谓的可选属性时,此必需属性无法正常工作(至少在我看来)得到验证。
@RestController
@RequestMapping("/service")
class MyController {
@PostMapping
fun print(@RequestPart("name", required = false) name: String,
@RequestPart("friend_name", required = false) friendsName: String) {
if (name != null)
print(name)
else
print("grr")
}
}
现在,当我提供参数name
但不提供时friend_name
,它表示该值不能为空。
{
"timestamp": "2018-10-10T09:50:49.305+0000",
"path": "/service",
"status": 500,
"error": "Internal Server Error",
"message": "Parameter specified as non-null is null: method co.example.controllers.MyController.print, parameter friendsName"
}
我已经尝试了相同的结果@RequestParam
并@RequestPart
获得了相同的结果。
解决方案
将您的可选参数标记为可为空。所以:
@RequestPart("name", required = false) name: String?
@RequestPart("friend_name", required = false) friendsName: String?
推荐阅读
- xamarin - Xamarin listview 图像绑定
- azure - 在摘要页面上显示 Azure Devops Pipeline 测试成功百分比
- c# - 如何使用 Entity Framework Core 在 .NET Core WebAPI 中返回嵌套表(一对多)?
- prolog - 使用“类型错误:预期为‘字符’,发现‘0.0’(一个浮点数)”来构建一个浮点数列表
- java - 使用正则表达式在java中生成密码
- c# - ABP 框架测试中的“无法解析参数”错误
- python - 如何使用 PN 序列将明文加密为密文?
- typescript - 在 TypeScript 类构造函数中强制字段初始化顺序
- java - 包文件夹不编译?
- python - 如何在每个循环中更改图形的 xlabel