gpt4 book ai didi

c - 有没有办法使用 libcurl >=7.3.x 从 HTTP header 获取内容长度?

转载 作者:行者123 更新时间:2023-11-30 14:35:41 27 4
gpt4 key购买 nike

我正在使用 libcurl 库来接收 HTTP 请求。我想知道正文的内容长度,以便我可以分配内存。是否有库函数或 libcurl 库支持解析 HTTP header 的方法?我不太确定当我收到 header 并且我想使用 libcurl 中被认为是标准的内容时,检索内容长度的最有效方法是什么。我咨询过the docs但还没有发现任何东西。

最佳答案

您可以通过CURLINFO_CONTENT_LENGTH_DOWNLOAD_T获取Content-Length但我不建议您依赖它。

  1. HTTP 并不强制要求发送 header ,事实上,发送大量 HTTP 响应时没有 header ,因此客户端事先并不知道其大小。
  2. HTTP 响应可能非常大,因此如果您的客户端无法完全控制它将获取哪些资源,则在内存中分配和存储整个响应可能是一个非常糟糕的主意。

您说“我使用的协议(protocol)需要预先提供总长度”,但这并不意味着 HTTP 会为您提供总长度。然后,您应该可能先获取 HTTP 响应并计算出总大小,然后再使用需要预先确定大小的第二个协议(protocol)来传递数据!

关于c - 有没有办法使用 libcurl >=7.3.x 从 HTTP header 获取内容长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com