代码之家  ›  专栏  ›  技术社区  ›  Codemwnci

SpringBoot:同时使用@RequestParam和@RequestBody

  •  0
  • Codemwnci  · 技术社区  · 7 年前

    在这个话题上似乎有一些问题,但现在很多问题已经过时,或者问的问题也相当不同。

    我使用的是SpringBoot和@RestController注释。

    我有一个简单的用例。我想向REST端点发送一个JSON字符串,它也包含一个RequestParameter。

    curl -d '{ "name": "Joe Bloggs" }' http://localhost:8080/test?debug=Y
    

    我不想在

    我有一个同时接受请求参数和请求体的方法签名(它是Kotlin,但我不认为这在这里有任何区别)。

    @PostMapping(value = ["/test"])
    fun getGCP(@RequestBody json: String, @RequestParam debug: String) : String 
    

    debug=Y&{"name": "Joe Blogs"}=
    

    有没有一种方法可以让RequestParameter和RequestBody作为单独的实体?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Codemwnci    7 年前

    问题是传入请求的内容编码。将curl命令更改为

    curl -H "Content-Type: application/json" -d '{ "name": "Joe Bloggs" }' http://localhost:8080/test?debug=Y
    

    debug=N
    json={ "name": "Joe Bloggs" }