在超级响应中发送特定数量的字节的最佳方法是什么?

问题描述

我正在尝试发送特定数量的字节(例如1GB)作为我正在制作的超级服务器中的非分块响应。我是Rust的新手,并且认为我可以将Rust等效于字节片,但是那一直没用。想知道实现此目标的最佳方法是什么。

let mut bytes = BytesMut::with_capacity(64).freeze();
Ok(Response::new(Body::from(bytes)))

这将返回内容长度为0的响应,但我希望它返回64个字节。

解决方法

BytesMut::with_capacity不会用任何东西填充缓冲区。它仅预分配64个字节的缓冲区,但长度为零。 documentation对此进行了说明,并给出了一个代码示例,该示例显示了缓冲区仍然为空,除非您向其中推送内容。

如果您想发送64个字节,而不关心它们是什么,请尝试填充零的Vec

Ok(Response::new(Body::from(vec![0; 64])))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...