【发布时间】:2016-01-12 23:23:35
【问题描述】:
我正在使用 Spring Integration 接收 HTTP 请求,该请求具有嵌套在多部分请求中的多部分内容,如下所示。当使用 CommonsMultipartResolver 作为解析器时,传递给接收服务激活器的 LinkedMultiValueMap 包含所有部分的映射,但嵌入的多部分是一个 UploadedMultipartFile包含全部内容。在示例中 boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL 是嵌入多部分的边界。
如何将嵌入的多部分解析为 LinkedMultiValueMap 以便获取版本和有效负载? CommonsMultipartResolver 是否可以执行此操作,或者是否有其他方法来解析它?
Http 请求:
POST http://xxxxx:8087/edi846InboundHTTP/1.1
内容类型:multipart/form-data;boundary=DM1-Sb0636VXPQNO3412Ygegb9suqr .......
内容长度:2787
--DM1-Sb0636VXPQNO3412Ygegb9suqr
内容配置:表单数据;名称="来自"
内容类型:text/plain;charset=ISO-8859-1 内容长度:7
gisb-确认收据
--DM1-Sb0636VXPQNO3412Ygegb9suqr
内容配置:表单数据;名称=“输入格式”内容类型: text/plain;charset=ISO-8859-1 内容长度:3
X12
--DM1-Sb0636VXPQNO3412Ygegb9suqr
内容配置:表单数据;名称=“输入数据”;文件名="TEST-DTEBS_846_3563_10142015102600.x12"
内容类型: multipart/encrypted;boundary=boundary2--extKDvsqGExTQI2WVuplHFCUQJ3XVL 协议: 应用程序/pgp 加密
boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL
内容配置:表单数据;名称="版本" 内容类型: application/pgp-encrypted Content-Length: 10
版本:1
boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL
内容配置:表单数据; name="payload" 内容类型:应用程序/八位字节流内容长度: 1118
-----BEGIN PGP MESSAGE----- 版本:BCPG v1.47
hQIOA8aa0/bci2e/EAf/fkgOBK+cooeY+44htcvjE9Sxk9RK73aOEaxDOBNqFOsV Nzw1va7cc7wzYOTlHhZV/MkpXq+IrZV316moJu1EAhscN9YmyReVDOzrkzZ1hBmq V2MlAr5/CRqS7nQEmCqy/Mz0STtAPZNg3FOh8F79dJnRws5/SdW+zvn2MoSvGTs3 0YvjmtPq2YyVkMlAvJ62f903UYNIiAcEe1k8gWDVW9LJ4tGud+8H0bsG8EFWPsSI b5rON+MKGykbWGnbSrOy9cqslJaghj91r7ZbsXXXiRn9v4rpOardfiBEnoamI5Tz jfDKESnr7CqoZgb62je+NJrB5puoAwy8LTynXx4cmQgAnf8lb6f+mIxa1U1Mu6iR KNTjrH83Cx2BjTra8E8hu0O7GvuczGfA9NiONmxbglgKK58/QVYdlsZUiGTaWkkY 4nMHiaFe9TiPQ6W2vMGutLFR3V6YSshchCskl6cP1OdaIXCYgzZKIjUWHePzd/ds zCZeNqul1N7iIQ0L5lfSGgfB2eDeeK3JKFjetrrbJQXz0+XeTZLPMSMr6W5Ggq3l PnoJVTrxUd3b2WKgR4FZB+imYRWEz5KLnB5ZVedC+fU24bECcNptrTQaZZUWnR3Z ABJqz8avBrNV0Jf9BaFRxcWkrWyr4KtxDArxXOuMHNvGVtj+hhPZcPGj3N9Xam3E 6snAGEbIiAEivZPYLVVVk0lZW2H0ISwkKkjD8qs7h8wa7Qbchp2K5IyENEzi20oe FNRoCwHyjsCY0nECHCG3WON0EXG2DZDTvA17OoyfuKnRT09FVt3OOEPTV048vUid kUoGa7uT7ud9En7uNSfmDpw+xHxB38N986BKBtoeJlGgDYISJkIgr40TIKMLE/Yc whDnmKxT68dfSGcv/DIUzYs+d/OBzSpHIWK87me5QnhmLTQ1xwfwtFoTyk6B3Vzx ljlZFD6e7PJfjo/RIhb0zMvtBvRTONRrMXKRdRY= =serM -----结束 PGP 消息-----
boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL--
--DM1-Sb0636VXPQNO3412Ygegb9suqr--
地图中的嵌入内容:
boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL
内容配置:表单数据; name="version" 内容类型:应用程序/pgp 加密内容长度: 10
版本:1
boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL
内容配置:表单数据; name="payload" 内容类型:应用程序/八位字节流内容长度: 1118
-----BEGIN PGP MESSAGE----- 版本:BCPG v1.47
hQIOA8aa0/bci2e/EAf/fkgOBK+cooeY+44htcvjE9Sxk9RK73aOEaxDOBNqFOsV Nzw1va7cc7wzYOTlHhZV/MkpXq+IrZV316moJu1EAhscN9YmyReVDOzrkzZ1hBmq V2MlAr5/CRqS7nQEmCqy/Mz0STtAPZNg3FOh8F79dJnRws5/SdW+zvn2MoSvGTs3 0YvjmtPq2YyVkMlAvJ62f903UYNIiAcEe1k8gWDVW9LJ4tGud+8H0bsG8EFWPsSI b5rON+MKGykbWGnbSrOy9cqslJaghj91r7ZbsXXXiRn9v4rpOardfiBEnoamI5Tz jfDKESnr7CqoZgb62je+NJrB5puoAwy8LTynXx4cmQgAnf8lb6f+mIxa1U1Mu6iR KNTjrH83Cx2BjTra8E8hu0O7GvuczGfA9NiONmxbglgKK58/QVYdlsZUiGTaWkkY 4nMHiaFe9TiPQ6W2vMGutLFR3V6YSshchCskl6cP1OdaIXCYgzZKIjUWHePzd/ds zCZeNqul1N7iIQ0L5lfSGgfB2eDeeK3JKFjetrrbJQXz0+XeTZLPMSMr6W5Ggq3l PnoJVTrxUd3b2WKgR4FZB+imYRWEz5KLnB5ZVedC+fU24bECcNptrTQaZZUWnR3Z ABJqz8avBrNV0Jf9BaFRxcWkrWyr4KtxDArxXOuMHNvGVtj+hhPZcPGj3N9Xam3E 6snAGEbIiAEivZPYLVVVk0lZW2H0ISwkKkjD8qs7h8wa7Qbchp2K5IyENEzi20oe FNRoCwHyjsCY0nECHCG3WON0EXG2DZDTvA17OoyfuKnRT09FVt3OOEPTV048vUid kUoGa7uT7ud9En7uNSfmDpw+xHxB38N986BKBtoeJlGgDYISJkIgr40TIKMLE/Yc whDnmKxT68dfSGcv/DIUzYs+d/OBzSpHIWK87me5QnhmLTQ1xwfwtFoTyk6B3Vzx ljlZFD6e7PJfjo/RIhb0zMvtBvRTONRrMXKRdRY= =serM
-----结束 PGP 消息-----
boundary2----extKDvsqGExTQI2WVuplHFCUQJ3XVL--
【问题讨论】: