You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Postman测试REST接口:无法同时上传文件与两个JSON对象求助

解决Postman中同时上传文件与发送多个JSON对象的问题

我之前也碰到过一模一样的问题!其实Postman完全支持同时完成文件上传和JSON数据发送,核心是要用对form-data的正确姿势,下面一步步给你讲清楚:

  • 切换到form-data请求体模式
    先把Postman请求体的类型从raw切换到form-data——这是关键,因为multipart/form-data格式本身就是为了同时传输文件和键值对数据设计的,而raw只能传单一格式的内容,所以没法混合文件和JSON。

  • 添加文件上传字段
    点击「Add Field」按钮,把字段类型从默认的「Text」改成「File」,给这个字段起个后端能识别的名字(比如attachment),然后点右侧的「Select Files」选择你要上传的文件就行。

  • 添加两个JSON对象字段
    接下来分别添加对应两个JSON对象的字段:

    1. 点击「Add Field」,保持字段类型为「Text」,给字段命名(比如userInfometadata
    2. 在「Value」输入框里直接粘贴你的JSON内容,比如{"username": "anil", "email": "anil@example.com"}
    3. (可选)如果后端要求明确指定JSON的Content-Type,可以点击每个字段右侧的「Headers」按钮,添加Content-Type: application/json——不过大部分后端框架会自动解析文本格式的JSON字符串,所以一般不用额外设置。
  • 后端接收的小提示
    要确保你的后端接口是按照multipart/form-data格式来接收数据的。举个Java Spring Boot的例子:

    @PostMapping("/submit-data")
    public ResponseEntity<String> handleUpload(
        @RequestParam("attachment") MultipartFile file,
        @RequestParam("userInfo") String userInfoStr,
        @RequestParam("metadata") String metadataStr
    ) {
        // 把JSON字符串转成对应的Java对象
        ObjectMapper objectMapper = new ObjectMapper();
        UserInfo userInfo = objectMapper.readValue(userInfoStr, UserInfo.class);
        Metadata metadata = objectMapper.readValue(metadataStr, Metadata.class);
        
        // 这里写你的业务逻辑:处理文件、操作两个对象
        return ResponseEntity.ok("上传和数据接收成功");
    }
    

别再尝试用raw模式混合文件和JSON啦,form-data才是正确的打开方式,按照上面的步骤设置,应该就能解决你的问题了!

内容的提问来源于stack exchange,提问作者Anil

火山引擎 最新活动