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

无法在Spring 5.0.1中处理多部分/报表数据。它只检测请求中的多部分/表单数据

邹曦之
2023-03-14

我正在使用Spring 5.0.1和servlet 3.1.0

但是当用户发送multipart/report(content-type)时,spring没有正确解析这个请求。
它没有给出任何例外情况,但是它没有在请求部分中存储任何内容。
request.getparts()将返回空数组。

是否需要进行任何配置,以便spring解析任何类型的多部分数据。

在下面张贴我的代码和请求负载:

@RequestMapping (value = "/rest/external/integration/{serviceName}", method = RequestMethod.POST)   
public void executeAssemblyExternal (HttpServletRequest request, 
            HttpServletResponse response, @PathVariable String serviceName)  throws Exception    
{        
      Parts[] requestParts = request.getParts();   
}

与请求一起发送的Content-type头是:
Content-type Multipart/Report;report-type=处置-通知;边界=“----=_Part_82_645653877.1526452736757”

发送到REST API的多部分数据如下:

----=_PART_82_645653877.1526452736757内容类型:文本/纯文本;charset=us-ascii content-transfer-encoding:7bit

-----=_PART_82_645653877.1526452736757内容-类型:消息/处置-通知内容-传输-编码:7bit

报告-UA:webMethods Integration Server原始-收件人:RFC822;接收者2最终-接收者:RFC822;ReceiverAS2 original-message-id:<1088014046.24.1526452734879@mcbkum03.eur.ad.sag>Received-content-mic:sezqzhp0aschqb1zco0dq4j0u3u=,sha1处理:automatic-action/mdn-sent-automatic;已处理

----=_PART_82_645653877.1526452736757--

共有1个答案

景成和
2023-03-14

正如Deinum在一篇评论中提到的,servlet不能处理multipart/form-data以外的多部分请求。因此编写了一个自定义dispatcherServlet,其中将绕过通过MultipartResolver处理具有头部Content-Type为multipart、子类型不是form-data的请求。

通过这样做,request.getInputStream()将拥有用户发送的完整的多部分数据。可以在服务器端对此inputstream执行必要的操作。

 类似资料:
  • 问题内容: 我在用Java应用程序服务器处理multipart / form-data请求时非常困难。从我发现的情况来看,servlet 3.0规范提供了诸如HttpServletRequest.getParts()之类的方法,这对于处理上传到我的servlet的表单数据是理想的。 但是,此方法是3.0 Servlet规范的一部分,并且我的应用程序服务器(Tomcat 6)尚不支持此方法。即使具有

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

  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

  • 我正在尝试通过使用多部分数据主体的JMeter构建HTTP请求。 我有一个HTTP头管理器,其内容类型设置为多部分/表单数据;边界=AaB03x。我选择了“将多部分/表单数据用于POST”。 然后我创建了一个数据主体, 当我运行这个程序时,我发现请求没有正确地发送正文,而是发送了一些随机数据, 发布数据: 并给出错误响应, 我的第二个问题是:请求的第3部分发送一个要上载的文件。我可以通过某种方式传

  • 我是Java(Spring Boot)新手,我正在尝试向s3发送一个

  • 我遇到了一个问题,我无法在我的资源中获取我的表单,变量总是为空 我的资源: 表单模型 我的取货请求: 和我的HttpClient: 为了确保我正在使用代理进行测试并且请求实际上是好的:变量文件名和徽标始终为空。 这是我的绒球.xml: 我不知道问题出在哪里。 我已经看过了多部分的官方resteasy文档,看不出问题在哪里。我已经用MultipartFormDataInput测试过,所有部分都是空的