1

我现在正在寻找几个星期来找到一个解决方案,如何在 Java 客户端中使用分块传输编码,而无需编写我自己的myHttpURLConnection.

HttpUrlConnectionJava 需要一个固定的块大小,这对我来说不可用。数据由几条大小不同的消息组成,必须及时发送到服务器。当前系统(处于 Prelive/UAT 状态)基于固定1024 byte块工作,但由于大多数消息明显更短,这是对 PROD 中不可接受的带宽的浪费。

此外,大于1024 bytes将被切分的消息,因此 a) 服务器需要再次组装它们,并且 b) 消息的最后一部分将不会被发送,直到有足够的数据可用于填充1024 bytes(更糟糕的是,不再是近时间了)。

有没有人知道如何解决HttpUrlConnectionJava 的限制(不符合RFC2616,因为它没有完全实现它)而不必在上面编写所有代码URLConnection?我没有找到任何可能性来挂钩所需的功能,只需为每个数据堆设置一个新的块大小。

我当前的选择:复制所有HTTPUrlConnection代码并修改处理CHUNKED的部分(例如,使用一些flush()函数来调整块大小并发送那里的内容)。

4

0 回答 0