我已经对这个主题进行了多次谷歌搜索,但没有找到任何东西(除了确认 AppEngine 忽略对'resp.setHeader(“transfer-encoding”,xxxx)'的调用。
我的问题是我有一个服务器进程需要一点时间才能完成(平均约 3 秒),但它会产生连续流的结果(即第一个数据对象在 10 毫秒后准备就绪)。
目前,服务器缓冲响应,然后将整个响应吐给客户端进行显示。虽然这可行,但它并不是一个出色的用户体验,因为用户必须等待整个过程完成才能看到第一个结果......
我相信使用分块传输可以解决这个问题,因为我可以立即向客户端发送第一个响应(并在它可用时立即流式传输后续数据),从而更好地了解进度等。
我的问题是我无法弄清楚如何启用分块传输。
谷歌搜索分块传输和应用程序引擎通常会找到想要从 blobstore禁用分块传输的人的帖子,或者说默认启用分块传输的帖子。然而,我迄今为止的测试表明,至少对于我的应用程序来说,这不是真的。
同样,非应用程序引擎引用谈论设置“传输编码”内容标头-但这在 AppEngine 上被明确忽略(至少,根据 python 文档-在 Java 端没有找到任何东西,说明它明确的,但是当我测试它时它也不起作用)。
最后,我已经尝试过刷新 respose 对象,获取响应写入器和刷新,获取响应输出流和刷新等,没有任何区别。
所以 - 我的问题是: 如何启用分块传输?