问题描述
我正在尝试发送特定数量的字节(例如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])))