gpt4 book ai didi

java - 来自 Vertx Web 客户端响应正文的 react 流发布者

转载 作者:行者123 更新时间:2023-12-02 00:59:36 26 4
gpt4 key购买 nike

我正在尝试为 Vert.x web-client 编写一个包装器使用reactivestreams中的Publisher从服务器加载响应正文:

import org.reactivestreams.Publisher;
import io.vertx.reactivex.ext.web.client.WebClient;

interface Storage {
Publisher<ByteBuffer> load(String key);
}

class WebStorage implements Storage {
private final WebClient client;

public WebStorage(final WebClient client) {
this.client = client;
}

@Override
public Publisher<ByteBuffer> load(final String key) {
return client.get(String.format("https://myhost/path?query=%s", key))
.rxSend()
.toFlowable()
.map(resp -> ByteBuffer.wrap(resp.body().getBytes()));
}
}

此解决方案不正确,因为它通过 getBytes() 调用以阻塞方式读取所有正文字节。

是否可以按 block 读取来自 Vert.x WebClient 的响应并将其转换为 Publisher (或 Rx Flowable)?

最佳答案

Vert.x Web 客户端并非设计用于传输响应正文。它按设计缓冲内容。

如果您想流式传输内容,可以使用更灵活的底层 HTTP 客户端。

关于java - 来自 Vertx Web 客户端响应正文的 react 流发布者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60865393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com