java - 包含在正文中时缺少请求参数

标签 java spring rest file postman

我正在发布一个 POJO,但出现错误,指出未包含该字段。

Assets POJO

public class Asset {

    private MultipartFile[] files;
    private String name;
    private String meta;

    //Constructor/Getters n Setters
}

资源方法

@PostMapping("asset")
public ResponseEntity uploadAsset(@RequestParam("asset") Asset asset) {
    System.out.println(asset);
    return new ResponseEntity(HttpStatus.ACCEPTED);
}

PostMan JSON 正文

{
    "asset" : {
        "files": [
            "@/home/Downloads/1.jpeg",
            "@/home/Downloads/2.jpeg"   
        ],
        "name": "assetName",
        "meta": "assetMeta"
    }
}

PostMan JSON 响应

{
    "timestamp": "2019-10-29T20:46:19.536+0000",
    "status": 400,
    "error": "Bad Request",
    "message": "Required Asset parameter 'asset' is not present",
    "path": "/asset"
}

我不明白为什么当我将其包含在 JSON 正文中时,会收到 Required Asset parameter 'asset' is not present 消息。对此有什么想法吗?

最佳答案

使用@RequestBody而不是@RequestParam

public ResponseEntity uploadAsset(@RequestBody Asset asset) {

关于java - 包含在正文中时缺少请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58615372/

相关文章:

java - 部署在 Tomcat 上的 Spring Boot MVC 应用程序无法正常工作

javascript - 为基于 Web 的应用程序禁用多用户登录

rest - 使用 accessToken 登录谷歌驱动器

javascript - 苏格拉底,苏打水,休息,JS : How to query number of rows?

iOS-无法获取预期的 json 结果

用于只读数据库的 java ORM

java - 是否有一个通用的数据结构来表示 Java 中的列表映射

java - 当 GET 也可以充当 POST 时,为什么我们需要 RestFul 中的 GET 和 POST 方法

java - 如何在 Spring Data JPA 中查找具有 OneToMany 关系的 cortege

spring - 如何使用spring将编码后的base64图像上传到服务器