rust - 在超响应中发送特定字节数的最佳方式是什么?
问题描述
我希望在我正在制作的超级服务器中发送特定数量的字节(例如 1GB)作为非分块响应。我是 Rust 的新手,我想我可以只使用 Rust 等效的字节切片,但这并没有奏效。想知道实现这一目标的最佳方法是什么。
let mut bytes = BytesMut::with_capacity(64).freeze();
Ok(Response::new(Body::from(bytes)))
这将返回内容长度为 0 的响应,但我希望它返回 64 个字节。
解决方案
BytesMut::with_capacity
不会用任何东西填充缓冲区。它只预分配一个 64 字节的缓冲区,但长度为零。文档表明了这一点,以及一个显示缓冲区仍然为空的代码示例,除非你向它推送一些东西。
如果您想发送 64 个字节而不关心它们是什么,请尝试使用零填充Vec
:
Ok(Response::new(Body::from(vec![0; 64])))
推荐阅读
- css - Position ''top/bottom'' 将图像从 div 中取出
- sql - Snowflake SQL UDF 返回“未知的用户定义函数”错误
- c++ - 在 C++ 中的正常块后检测到堆损坏
- node.js - Node.js 解析终端输入
- python - 在 Windows 的 bash 文件中运行 python 脚本
- deno - Deno - 如何从远程 API 或 URL 获取数据?
- angular - "pathMatch": "full" for empty-path route 导致空白视图
- reactjs - macos 与 linux 上的 create-react-app 之间的区别?
- javascript - 函数后未定义的值
- netsuite - NetSuite 保存搜索公式以确定是否所有组件都有库存