【问题标题】:Cannot send the body in postman无法在邮递员中发送尸体
【发布时间】:2020-02-19 23:46:58
【问题描述】:

我有以下代码:

@PostMapping()
    public ResponseEntity<Object> postAccounts(
            @RequestHeader(value = "client-id", required = true) String clientId,
            @RequestHeader(value = "X-client-Global-Id", required = false) String clientGlobalID,
            @RequestHeader(value = "Authorization", required = true) String authorization,
            @Valid @RequestBody(required = true) String inputContract, @RequestBody(required = true)String nameInput, @RequestBody(required = true) Boolean state) {

        return new ResponseEntity<>(inputContract, HttpStatus.OK);
    }


当邮递员调用这个方法时给我一个错误。

trace": "org.springframework.http.converter.HttpMessageNotReadableException: I/O error while reading input message; nested exception is java.io.IOException: Stream closed\r\n\tat org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:217)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:158)\r\n\tat 

【问题讨论】:

  • 好吧....有什么错误?
  • RequestBody太多了,一个请求应该只有一个,最好是创建一个对象,把参数封装在里面或者直接用RequestParam代替RequestBody。

标签: java spring rest postman


【解决方案1】:

如果您想在正文中发送多个属性,您只能发送一个 RequestBody。你必须创建一个对象

@PostMapping()
    public ResponseEntity<Object> postAccounts(
           //Other Headers...,
            @Valid @RequestBody(required = true) ObjectWithAllFields) {

        return new ResponseEntity<>(ObjectWithAllFields, HttpStatus.OK);
    }


编辑 1

请发送您的错误跟踪。

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2018-05-25
    • 1970-01-01
    • 2022-01-25
    • 2021-07-13
    • 1970-01-01
    • 2019-04-16
    • 2018-01-09
    • 2019-09-07
    相关资源
    最近更新 更多