使用Postman对@RequestPart和HttpServletRequest组合传参方式

文章介绍了如何在JavaAPI中使用Postman通过`@RequestPart`和`HttpServletRequest`来传递BizDemandInfoentity对象以及文件,强调了Content-Type设置为application/json的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Postman对@RequestPart和HttpServletRequest组合传参方式

方法代码如下:

    /**
     * 发布
     */
    @ApiOperation("发布")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "req", value = "json格式", dataType = "Map", dataTypeClass = Map.class),
            @ApiImplicitParam(name = "file", value = "文件", dataType = "File", dataTypeClass = File.class)
    })
    @PostMapping("/publish")
    public AjaxResult publish(@Validated @RequestPart("req") BizDemandInfo entity, HttpServletRequest request) throws IOException {
        List<MultipartFile> fileList = ((MultipartHttpServletRequest) request).getFiles("file");
        // 限制上传文件大小,单位是字节
        final long MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
        // 限制上传文件的数量
        final int MAX_FILES = 5;
        List<BizDemandAttachment> attachmentList = new ArrayList<>();
        if (!fileList.isEmpty()) {
            //上传文件数不能大于5
            if (fileList.size() > MAX_FILES) {
                log.error("上传文件数不能大于5");
                return AjaxResult.error("上传文件数不能大于5");
            }
            for (MultipartFile file : fileList) {
                //每个文件不能大于10M
                if (file.getSize() > MAX_FILE_SIZE) {
                    log.error("每个文件不能大于10M");
                    return AjaxResult.error("每个文件不能大于10M");
                }
                String url = FileUploadUtils.uploadMinio(Constants.MINIO_BUCKET_NAME_DEMAND, file);
                String fileName = file.getOriginalFilename();
                BizDemandAttachment attachment = new BizDemandAttachment();
                attachment.setAttachmentName(fileName);
                attachment.setAttachmentUrl(url);
                attachmentList.add(attachment);
            }
        }
        entity.setBizDemandAttachmentList(attachmentList);
        String createBy = getUsername();
        entity.setCreateBy(createBy);
        String id = service.insert(entity);
        return StringUtils.isNoneBlank(id) ? AjaxResult.success(id) : AjaxResult.error();
    }

想使用postman对entity和request参数传参,应该怎么传呢?

传参方法:

直接上图片

image-20240429110316335

因为参数entity是@RequestPart(“req”) BizDemandInfo entity,所以名称得填req。最重要的是Content-Type要填application/json

image-20240429110539983

里面的内容直接填json串就可以了。

回答: 在使用Postman进行测试时,可以使用@RequestPart注解@RequestBody注解来传递参数。@RequestPart注解用于multipart/form-data表单提交请求的方法上,可以用于接收文件其他复杂的请求域数据(如JSON、XML等)。例如,可以使用@RequestPart注解来接收文件一个包含其他参数的对象,如下所示: ```java @PostMapping("/upload") public void uploadFile(@RequestPart("file") MultipartFile file, @RequestPart("data") DataObject data) { // 处理文件数据 } ``` 在Postman中,可以使用form-data格式来发送请求,其中key为"file",value为文件,key为"data",value为JSON格式的数据。 而@RequestBody注解用于接收POST请求中的请求体内容,通常用于接收JSON数据或其他复杂的数据类型。例如,可以使用@RequestBody注解来接收一个包含JSON数据的对象,如下所示: ```java @PostMapping("/save") public void saveData(@RequestBody DataObject data) { // 处理数据 } ``` 在Postman中,可以使用raw格式来发送请求,选择JSON格式,并在请求体中输入JSON数据。 总结起来,@RequestPart注解适用于multipart/form-data请求,可以接收文件其他复杂的请求域数据,而@RequestBody注解适用于接收POST请求中的请求体内容,通常用于接收JSON数据或其他复杂的数据类型。在Postman中,可以根据需要选择合适的格式来发送请求,并在请求中传递相应的参数。 #### 引用[.reference_title] - *1* *2* *3* [@RequestBody、@RequestParam 、@PathVariable、@RequestPart](https://blog.csdn.net/qq_35341203/article/details/108877579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值