对Java SpringBoot后端的Curl POST请求将所有数字接收为0

6yjfywim  于 2022-11-23  发布在  Spring
关注(0)|答案(1)|浏览(188)

我有一个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请求的格式。但是,我在网上看了一下,从我所看到的来看,这应该是工作正常的。

6l7fqoea

6l7fqoea1#

在你的CURL请求中有一个小问题。不需要在“key”中使用转义符。你正在使用一个反斜杠和双引号(\”),这是不需要的。
请尝试此CURL请求。

curl --request POST --header "Content-Type: application/json" --data '{"key": 5}' http://localhost:8080/request

相关问题