【问题标题】:How to get the length of compressed response in Reactor-Netty?如何在 Reactor-Netty 中获取压缩响应的长度?
【发布时间】:2020-04-29 05:50:32
【问题描述】:
httpClient.post().uri(getSearchUrl())
                    .send(Mono.just(Unpooled.wrappedBuffer(bytes)))
                    .responseSingle((resp, buf) -> {
                        return buf;
                    })
                    .map(ByteBuf::retain)
                    .map(byteBuf -> {
                        response.setResponseBodyStream(new ByteBufInputStream(byteBuf, true));
                        return response;
                    });

responseSingle方法中,响应已经解压。 那么我怎样才能得到压缩响应的长度呢?谢谢。

【问题讨论】:

    标签: reactor-netty


    【解决方案1】:

    检查响应标头。您可能有标题“Content-Length”,它应该告诉您响应大小。

    否则,您可以将正文作为 ByteArrayResource 并检查字节数组的大小。

    .exchange()
    .flatMap(clientResponse -> clientResponse.bodyToMono(ByteArrayResource.class)
         .flatMap(responseBodyByteArray -> checkSize(responseBodyByteArray.getByteArray().length))
     )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2019-04-02
      • 2012-09-12
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多