本文主要是介绍使用webclient出现Exceeded limit on max bytes to buffer : 262144,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用webclient出现Exceeded limit on max bytes to buffer : 262144
由于公司技术升级,要求我用webflux的webclient替换原来的restTemplate,代码看起来很好改动,但是在改完后测试出现了这样的报错
org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144at org.springframework.core.io.buffer.LimitedDataBufferList.raiseLimitException(LimitedDataBufferList.java:101)Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
经过查证,就是默认缓冲区是256k,响应数据大于了256k,故出现此报错,解决办法就是在构造webclient时,手动设置缓冲区大小,这里我设置10MB,响应成功,代码如下:
.maxInMemorySize(10*1024*1024))
完整代码段:
WebClient webClient = WebClient.builder().clientConnector(reactorClientHttpConnector).exchangeStrategies(ExchangeStrategies.builder().codecs(clientCodecConfigurer -> clientCodecConfigurer.defaultCodecs().maxInMemorySize(10*1024*1024)).build()).build();
这篇关于使用webclient出现Exceeded limit on max bytes to buffer : 262144的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!