我正在使用WSO2的API管理器来提供对我的REST API的访问。在大多数情况下,这已按预期工作。但是,在尝试上传文件时,似乎API管理器会以某种方式转换或截断数据。
当服务器(WebAPI)尝试读取传入文件时,它会抛出异常:
"Unexpected end of MIME multipart stream. MIME multipart message is not complete."
我运行了数据包捕获,以确切了解数据发生了什么。它肯定在被修改;当客户端为多部分边界发送时:
ContentType: multipart/form-data; boundary=----WebKitFormBoundarycERX4y7BIbMWyr9j
服务器收到:
ContentType: multipart/form-data; charset=UTF-8; boundary=MIMEBoundary_d3d321395e018c038f76372bacdee393c805f83beb71e614
到目前为止,不是问题。但是,当我查看第一帧中的有效负载时,我发送1323个字节并接收1317个字节。数据是相同的,直到最后六个字节,这是完全丢失的。
在文件之后,客户端发送另一部分:
HTTPPayloadLine: Content-Disposition: form-data; name="id"
HTTPPayloadLine: 123
HTTPPayloadLine: ------WebKitFormBoundarycERX4y7BIbMWyr9j--
然而,服务器根本没有收到此信息。
表单数据通过WSO2 API Manager时会发生什么?