【问题标题】:Incomplete chunked result不完整的分块结果
【发布时间】:2018-11-17 07:57:48
【问题描述】:

问题是当我在documentation 之后返回带有许多随机行的分块响应时,并非所有这些行都出现在浏览器(谷歌浏览器、邮递员)中。例如。如果我发送 8192 行,浏览器将只显示 ~7k 甚至 ~4k。我的目标是使用这种方法生成大型 CSV 文件。

public Result test() {
    var source = Source.<ByteString>actorRef(256, OverflowStrategy.dropNew())
            .mapMaterializedValue(actor -> {
                new Thread(new MyRunnable(actor)).start();
                return NotUsed.getInstance();
            });

    return ok().chunked(source);
}

// ------

public class MyRunnable implements Runnable {

    private final ActorRef actor;

    public MyRunnable(ActorRef actor) {
        this.actor = actor;
    }

    public void run() {
        for (var i = 0; i < 1024 * 8; i++) {
            var line = String.format("%d some data goes here\n", i + 1);
            actor.tell(ByteString.fromString(line), null);
        }

        actor.tell(new Status.Success(NotUsed.getInstance()), null);
    }

}

【问题讨论】:

  • 我想缓冲区大小有问题。

标签: java playframework akka playframework-2.6


【解决方案1】:

指定内容长度标头,因为它似乎播放框架不正确。

引用

【讨论】:

  • 我在 flay 上生成内容,所以我不知道它的长度。见more
猜你喜欢
  • 2018-02-09
  • 2019-04-10
  • 2013-02-16
  • 1970-01-01
  • 2023-03-05
  • 2018-07-13
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多