【发布时间】:2019-09-25 02:46:01
【问题描述】:
我有 Spring Boot 微服务,并使用 swagger 发送大型有效负载。在服务器上我只得到 15000 个字符,并且重置 2000 个字符没有被读取。
如何使用 ReadBodyPredicateFactory 缓存正文消息文本?
我正在使用 springcloudgateway 并添加了过滤器。在应用方法的过滤器中,我尝试使用
读取有效负载 json DefaultServerRequest serverRequest = new DefaultServerRequest(exchange);
body = serverRequest.bodyToMono(String.class).toFuture().get();
有时它会挂起。
我尝试使用 Flux,然后我只收到一半消息 通量体 = request.getBody();
body.subscribe(buffer -> {
try {
System.out.println("byte count:" +
buffer.readableByteCount());
byte[] bytes = new byte[buffer.readableByteCount()];
buffer.read(bytes);
DataBufferUtils.release(buffer);
String bodyString = new String(bytes, StandardCharsets.UTF_8);
sb.append(bodyString);
} catch (Exception e) {
e.printStackTrace();
}
【问题讨论】: