首页 > 解决方案 > 在超响应中发送特定字节数的最佳方式是什么?

问题描述

我希望在我正在制作的超级服务器中发送特定数量的字节(例如 1GB)作为非分块响应。我是 Rust 的新手,我想我可以只使用 Rust 等效的字节切片,但这并没有奏效。想知道实现这一目标的最佳方法是什么。

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

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

标签: rusthyper

解决方案


BytesMut::with_capacity不会用任何东西填充缓冲区。它只预分配一个 64 字节的缓冲区,但长度为零。文档表明了这一点,以及一个显示缓冲区仍然为空的代码示例,除非你向它推送一些东西。

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

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

推荐阅读