无法使用 wmMediator post multipart/form-data 到端点
unable to post multipart/form-data to an endpoint using wmMediator
我遇到了 Mediator(9.7 和 Fix 11)包的问题,我想知道您是否遇到过同样的问题,或者您是否有一些想法来纠正或绕过它?
问题是:我有一个类似 http REST 的请求,它实际上是一个 multipart/form-data 页面。当我通过 Mediator(使用 Centrasite 虚拟化)调用它时,多部分有效负载以 xml 格式转换。端点无法使用该格式正确响应。
为什么调解器要进行这种转换,我们如何防止这种转换?
在 Mediator 输入中,我们有这个:
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundaryiBMdnONIEM1rPnWp\r\n
------WebKitFormBoundaryiBMdnONIEM1rPnWp
Content-Disposition: form-data; name="typeEnvoi"
99
------WebKitFormBoundaryiBMdnONIEM1rPnWp
Content-Disposition: form-data; name="prenom"
hhhh
------WebKitFormBoundaryiBMdnONIEM1rPnWp
Content-Disposition: form-data; name="fileVisualExam1"; filename="Mezer_Stamp.png"
Content-Type: image/png
?PNG
端点收到:
Content-Type: application/xml; charset=UTF-8
<?xml version='1.0' encoding='UTF-8'?><tns:POST_AppMobile
xmlns:tns="http://namespaces.compagny.com/wsdl">
<typeEnvoi>99</typeEnvoi>
<fileVisualExam1>iVBORw0KGgoAAAANSUhEUgAAAF4AAABZCAYAAAC315PWAAAAAXNSR0IArs
4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARZSURBVHja7NAJAQAwEAIg+5
[...] Wp70lgEAafIxtwjUN/HS1B12VkNYiYm0i9wcjG1+yo+S9ZjauIsIDRm5RobKkeQoQ2fYxx9DUmU5S9Kx
T8QwYfynJcRoSFgt6mVKqxBdehf4bx9B7G0A+Y6r6ra9R1VdvI=</fileVisualExam1>
<prenom>hhhh</prenom></tns:POST_AppMobile>
我已经尝试通过修改 content-types.xml 调解器的配置文件(为该 mime 添加多部分或二进制文件),但没有成功。
请安装最新的 Mediator 9.7 Fix(当前修复 18)。从 Fix 15 开始,以下问题已得到解决:
SMGME-5868 (Fix 15)
Mediator transforms rest request of type multipart/form-data to XML.
When requests with multipart/form-data are sent to Mediator, Mediator converts
the request to application/xml. This issue is resolved
这应该可以解决您的问题。
我遇到了 Mediator(9.7 和 Fix 11)包的问题,我想知道您是否遇到过同样的问题,或者您是否有一些想法来纠正或绕过它?
问题是:我有一个类似 http REST 的请求,它实际上是一个 multipart/form-data 页面。当我通过 Mediator(使用 Centrasite 虚拟化)调用它时,多部分有效负载以 xml 格式转换。端点无法使用该格式正确响应。
为什么调解器要进行这种转换,我们如何防止这种转换?
在 Mediator 输入中,我们有这个:
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundaryiBMdnONIEM1rPnWp\r\n
------WebKitFormBoundaryiBMdnONIEM1rPnWp
Content-Disposition: form-data; name="typeEnvoi"
99
------WebKitFormBoundaryiBMdnONIEM1rPnWp
Content-Disposition: form-data; name="prenom"
hhhh
------WebKitFormBoundaryiBMdnONIEM1rPnWp
Content-Disposition: form-data; name="fileVisualExam1"; filename="Mezer_Stamp.png"
Content-Type: image/png
?PNG
端点收到:
Content-Type: application/xml; charset=UTF-8
<?xml version='1.0' encoding='UTF-8'?><tns:POST_AppMobile
xmlns:tns="http://namespaces.compagny.com/wsdl">
<typeEnvoi>99</typeEnvoi>
<fileVisualExam1>iVBORw0KGgoAAAANSUhEUgAAAF4AAABZCAYAAAC315PWAAAAAXNSR0IArs
4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARZSURBVHja7NAJAQAwEAIg+5
[...] Wp70lgEAafIxtwjUN/HS1B12VkNYiYm0i9wcjG1+yo+S9ZjauIsIDRm5RobKkeQoQ2fYxx9DUmU5S9Kx
T8QwYfynJcRoSFgt6mVKqxBdehf4bx9B7G0A+Y6r6ra9R1VdvI=</fileVisualExam1>
<prenom>hhhh</prenom></tns:POST_AppMobile>
我已经尝试通过修改 content-types.xml 调解器的配置文件(为该 mime 添加多部分或二进制文件),但没有成功。
请安装最新的 Mediator 9.7 Fix(当前修复 18)。从 Fix 15 开始,以下问题已得到解决:
SMGME-5868 (Fix 15)
Mediator transforms rest request of type multipart/form-data to XML.
When requests with multipart/form-data are sent to Mediator, Mediator converts
the request to application/xml. This issue is resolved
这应该可以解决您的问题。