向Java SpringBoot后端发出的curl POST请求将所有数字接收为0



我有一个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

最新更新