我正在使用 WSO2 的 API Manager 来提供对我的 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 时会发生什么情况?