我有一个Java SpringBoot后端服务器,我想用curl测试控制器类。然而,每当我用以下格式发送请求时(在powershell终端中):
curl --request POST --header "Content-Type: application/json" --data '{"key": 5}' http://localhost:8080/request
所有数值都变为零。如果在DTO类中我将它们改为Integer
而不是int
,那么它们被接收为null
。对于字符串,一切都很完美。
这是我的控制器方法的样子:
@RestController
@RequestMapping("/request")
class MyController {
@PostMapping
public ResponseEntity<MuseumTO> createMuseum(@RequestBody RequestDTO request) {
System.out.println(request.key);
// ...
}
}
和DTO类:
class RequestDTO {
public int key
}
GET请求工作得很好,我尝试了两个不同的后端,所以我认为我的问题来自curl请求的格式。然而,我在网上看了看,从我所看到的,这应该是工作的。
您的CURL请求中有一个小问题。不需要使用带有"键"的转义字符。您正在使用不需要的反斜杠和双引号(")。
请尝试这个CURL请求。
curl --request POST --header "Content-Type: application/json" --data '{"key": 5}' http://localhost:8080/request
一些只有CURL不能工作,我们需要在下面的格式中提到:
curl.exe --request POST --header "Content-Type: application/json" --data '{"key": 5}' http://localhost:8080/request