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

使用CommonsMultipartResolver解析包含嵌入式多部分内容的HTTP请求

蒙华翰
2023-03-14

我正在使用Spring Integration接收一个HTTP请求,它在多部分请求中嵌套了多部分内容,如下所示。当使用CommonsMultipartResolver作为解析器时,传递给接收服务激活器的LinkedMultiValueMap包含所有部件的映射,但嵌入的MultiParter是包含全部内容的UploadedMultipartFile。在示例边界2中--extkdvsqgextqi2wvuplhfcuqj3xvl是嵌入式多部分的边界。

如何将嵌入的多部分解析到LinkedMultiValueMap中,以便获得版本和负载?CommonsMultipartResolver是否有可能做到这一点,或者是否有其他方法来解析它?

发布http://xxxxx:8087/EDI846inbound http/1.1

内容-类型:多部分/表单-数据;边界=DM1-SB0636VXPQNO3412YGEGB9SUQR.......

内容-长度:2787

GISB-确认-接收

--DM1-SB0636VXPQNO3412YGEGB9SUQR

内容-处置:表单-数据;name=“input-format”content-type:text/plain;charset=iso-8859-1 content-length:3

内容-处置:表单-数据;name=“input-data”;filename=“test-DTEBS_846_3563_10142015102600.x12”

Content-Type:multipart/encrypted;boundary=boundary2-extkdvsqgextqi2wvuplehfcuqj3xvl protocol:application/pgp-encrypted

边界2----extkdvsqgextqi2wvuplhfcuqj3xvl

内容-处置:表单-数据;name=“version”content-type:application/pgp-encrypted content-length:10

版本:1

边界2----extkdvsqgextqi2wvuplhfcuqj3xvl

边界2----extkdvsqgextqi2wvuplhfcuqj3xvl--

--DM1-SB0636VXPQNO3412YGEGB9SUQR--

映射中的嵌入内容:

边界2----extkdvsqgextqi2wvuplhfcuqj3xvl

内容-处置:表单-数据;name=“payload”content-type:application/octet-stream content-length:1118

----开始PGP消息-----版本:BCPG v1.47

共有1个答案

宗政楚
2023-03-14

不知道您的意思,但我建议在MultiPartawareFormHttpMessageConverter.readMultiPart()中调试代码。这是uploadedmultipartfile出现的地方。

 类似资料:
  • 我试图在Spring Boot中使用RestTemplate来模拟这个请求 这是我的代码: 上面的请求抛出一个HttpClientErrorException,这就是响应体的样子 {“错误”:{“消息”:“需要多部分/表单数据;边界=<..>内容,但获得多部分/表单数据;边界=X6G0xWVXDZX4N8PYNU8IHGANGG4TWJ3DGMaryDS。”,“代码”:“错误内容类型”}} 我也尝

  • 我试图发送一个帖子请求到一个php文件,该文件有帖子数据和文件上传,这里是我发送的内容,设置标题的代码,我有的php文件,以及我从php中得到的东西file:([图像文件内容]是我正在发送的图像文件二进制数据的占位符) 我的问题是_POST //我正在向服务器发送的数据: 对于我的标题,我有: php文件: php文件的结果:

  • 我有一个小程序发送http请求并用TCP协议得到响应。 我的请求格式; 我从套接字逐行读取响应(在c#中使用NetworkStream和StreamReader),直到找到内容长度的标头。我存储长度,然后继续读取,直到找到空行。然后创建一个带有长度的缓冲区并接收其余的响应。 但有些响应没有内容长度标题。所以我的方法失败了。如果我不知道应该接收多少字节,我应该何时停止?

  • 当我尝试用我的代码下载文件时,我出现了这样的错误: HTTP状态500-请求处理失败;嵌套异常是org.springframework.web.multipart.multipartException:无法解析多部分servlet请求;嵌套异常是java.io.ioException:临时上载位置[/tmp/tomcat.5139949927832460132.8080/work/tomcat/l

  • 问题内容: 我有一个用go语言编写的网络服务器,并且正在提供来自不同来源(本地,其他服务器,S3)的一些音频文件。我想为此文件提供部分内容,以便HTML音频标签能够搜索和循环。 我该如何实现?我知道包功能可以做到这一点,但是我如何通过自己提供文件来实现呢?我需要在没有此操作的情况下执行此操作,以便可以使用相同的处理程序处理来自不同来源的文件。 问题答案: 提供部分内容并非易事。有关介绍,请参见Wi

  • 我们正在使用Zuul将请求转发到内部微服务。内部服务有两个endpoint(一个PUTendpoint和一个POSTendpoint)。我们发现,多部分请求在到达内部PUTendpoint之前就已损坏。 多部分数据似乎已从请求中删除。这似乎只适用于PUT请求,因为POST工作得很好。 如果我们使用cURL直接命中内部PUTendpoint,那么请求将得到正确处理。相应的cURL命令和请求主体如下所