当前位置: 首页 > 知识库问答 >
问题:

邮递员发送的post请求正文中包含JSON的400错误请求

范凡
2023-03-14

我有一个带有更新方法的控制器。该方法应在RequestBody中获取产品,但这会导致请求错误。我和邮递员一起发了一封邮件。JSON作为原始JSON发送,请求内容类型为application/JSON。

@RestController
@RequestMapping(path = "/mypath",
        consumes = {MediaType.APPLICATION_JSON_VALUE})
@RequestScope
public class MyController {

    @PostMapping
    public @ResponseBody ResponseEntity<String> update(
        @RequestBody Product product) {
        //do something with product
        return new ResponseEntity<>("Update successful.", HttpStatus.OK);
    }

    public class Product {
        public Product() {
        }

        @JsonCreator
        public Product(@JsonProperty("name") String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        private String name;

    }

}

正文中的JSON是

{
    "name": "TestProductName"
}

请求响应不良的原因是什么?JSON似乎格式化正确,当没有正文时调用更新方法。

共有1个答案

凤伟泽
2023-03-14

如果使用MediaType.APPLICATION\u JSON而不是MediaType.APPLICATION\u JSON\u值会怎么样?我想说的是,既然您在Postman中指定要发送application/json,我认为您应该使用application\u json。如果要发送JSON的字符串表示形式,则使用APPLICATION_JSON_值,如下所示:

“{”name:“TestProductName”}”

 类似资料:
  • 我正试着在邮递员上打API。API正在服务器上工作,但我没有收到任何数据。以下是视觉图像: 它是回应我与“没有数据”和400错误的要求。

  • 我正在尝试使用Postman访问API,以使用基本身份验证获取响应,但当我提交数据时,它会给我带来可怕的400错误,这显然表明某些标头设置不正确。 以下是API信息: 作为回应,我应该得到一个JSON形式的加密令牌,而不是得到这个错误。 以下是邮差截图: 我错过了什么吗?

  • 我有一个非常基本的webApi构建/运行(相当模板应用程序,仅此而已),以便遵循一个培训视频。GET和DELETE调用工作正常,PUT和POST给出400错误。诚然,对所有这些都很新,所以我正在寻找一些基本的方向,关于如何排除故障。相关的屏幕截图如下,我很高兴提供其他要求。提前谢了。

  • 我试图在中发送格式的请求。 我尝试了很多来自internet和StackOverflow的代码,但都不起作用。

  • 我对邮递员有意见... 但是,当我尝试以 raw(json) 格式的正文发送相同的请求时,我得到了这个: 我试图通过Angular 5将数据发送到Drupal 8后端。 谢谢你!

  • 我正试图从我的android向IIS Web服务发送一个包含一类数据的图像。(C#) 问题是我得到。 图像正在被编码为< code>Base64。然后与其余的类元素一起放入< code>json中。 我猜想Base64在Json中是无效的。因此服务器无法理解。如果我将字符串设置为,则可以接受帖子。 所以问题是,如何使我的在数组中有效?(我尝试了URL.Encode,但没有成功)。 或者应该如何从a