我有两个Play应用程序(比如A和B)和一个浏览器客户端(C)。目的是使用multipart/form-data
从客户端C通过A向B发送文件和一些json数据。因此,该过程是 C - > A - >乙
从客户端,数据以多部分的形式出现,标题为 -
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryWnmuXaBXoBUSKF92
我的请求有效负载看起来像 -
------WebKitFormBoundaryWnmuXaBXoBUSKF92
Content-Disposition: form-data; name="data"
{"abc": 1, "bcd": 2, "xyz": 3}
------WebKitFormBoundaryWnmuXaBXoBUSKF92
Content-Disposition: form-data; name="file"; filename="test3.csv"
Content-Type: text/csv
------WebKitFormBoundaryWnmuXaBXoBUSKF92--
因此,我将json和文件一起发送到一个 POST 请求中。
现在,我希望在浏览Play应用 A 后将此内容转发到Play应用 B 。
我尝试了三种方法 -
MultipartFormData
解析 A 上的multipart / form-data,并取出File
和json
。在这种方法中,我正在尝试重新生成Play App B 的请求。现在我被困在转发部分。我读了this,但我不知道如何将它与文件一起使用。需要帮助。websocket
的第二种方法。这是将文件作为bytestream
发送,修复帧大小并在发送之前对文件进行切片。这里我遇到的问题是保持帧同步,因为send()
是异步的。我尝试实现一个解决方案,当服务器收到一个文件块时,服务器发送ACK
,直到eof
为止。这种方法可行,但我不确定它是否是最佳解决方案。我想知道解决这个问题的最佳方法是什么。欢迎任何其他方式!
我正在使用Play 2.3.6(Java)。很抱歉长时间阅读。