【问题标题】:What is the best way to send a specific number of bytes in a hyper response?在超响应中发送特定字节数的最佳方式是什么?
【发布时间】:2020-08-15 05:59:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: rust hyper


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      相关资源
      最近更新 更多