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

如何接收请求体数据和多部分图像文件?

贺靖
2023-03-14

我想要接收带有请求正文数据的多部分图像文件,但无法弄清楚,为什么会抛出org.springframework.web.httpmediatypenotsupportedexception:Content type'application/octet-stream'不支持异常

下面是我的实现

public ResponseEntity<GlobalResponse> createUser(@Valid @RequestPart("json") UserDTO userDTO ,@RequestPart(value ="file", required=false)MultipartFile file) throws IOException {

      //Calling some service

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

编辑:这是我的邮递员配置

共有1个答案

井高峯
2023-03-14

因为您是以表单数据的形式发送数据,表单数据可以以键值对的形式发送数据。不在requestbody中,因此需要如下所示修改endpoint:

@PostMapping(value = "/createUser")
public ResponseEntity createUser(@RequestParam("json") String json, @RequestParam("file") MultipartFile file) throws IOException {
    ObjectMapper objectMapper = new ObjectMapper();
    UserDTO userDTO = objectMapper.readValue(json, UserDTO.class);
    // Do something
    return new ResponseEntity<>(HttpStatus.OK);
}

您需要以string表示形式接收userdto对象,然后使用objectmapper将其映射到userdto。这将允许您使用表单数据接收multipartfileuserdto

 类似资料:
  • 我正在使用请求库编写Web服务客户端。我正在获取包含文件和文本json的多部分/表单数据。我不知道如何解析它。是否有合适的库来解析python中的多部分/表单数据格式,或者我应该自己编写解析器? 我的代码: b'\r\n--c00750d1-8ce4-4d29-8390-b50bf02a92cc\r\nContent-Displace: form-data; name="playback Hash

  • 我公开了一个restful webservice,我想在json主体请求中接受图像作为多部分文件,我在任何地方都找不到示例json请求,以便从rest客户端访问我的rest服务。我的rest服务在类声明@Consumes({MediaType.APPLICATION\u JSON,MediaType.MULTIPART\u FORM\u DATA})上方使用此字段。有人能给我一个JSON请求示例吗

  • 问题内容: 我正在使用请求库编写Web Service客户端。我正在包含文件和text-json的multipart / form- data中获取数据。我不知道如何解析它。是否有合适的库可以解析python中的multipart / form-data格式,还是我应该自己编写解析器? 我的代码: b’\ r \ n–c00750d1-8ce4-4d29-8390-b50bf02a92cc \ r

  • 我有以下错误: 我为http请求设置了服务器,仍然得到错误:

  • 客户(ReactJS/Axios): Multer中间件: 下一个(): 异步(req,res)= 此处req.file未定义! } 当我尝试使用Axios传递图像时,req.file在控制器中显示为未定义。 我认为错误是在传递多部分/表单数据时,因为当我通过Insonmia Rest执行此操作时,它会工作!

  • 问题内容: 我正在编写一个RESTful API。我在使用不同的动词上载图像时遇到麻烦。 考虑: 我有一个对象,可以通过对URL的发布/放置/删除/获取请求来创建/修改/删除/查看。如果有要上载的文件,则请求是多部分形式;如果只有文本要处理,则请求是application / xml。 为了处理与对象相关的图像上传,我正在做类似的事情: 这里的主要问题是在尝试处理放置请求时,显然$ _POST不包