是否可以使用libcurl> = 7.3.x从HTTP标头获取内容长度?

问题描述 投票:0回答:1

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

c libcurl
1个回答
1
投票

您可以用Content-Length来获得CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,但我不建议您依靠它。

  1. HTTP并不要求发送标头,实际上发送了大量的HTTP响应而没有标头,因此客户端事先不知道大小。
  2. HTTP响应可能非常大,因此,如果您的客户端无法完全控制它将获得的资源,那么将整个响应分配并存储在内存中可能不是一个好主意。

您说过“我正在使用的协议需要前面的总长度”,但这并不意味着HTTP将为您提供一个。然后,您应该可能而不是首先获取HTTP响应并找出总大小,然后再使用需要该大小的第二个协议来传递数据!

© www.soinside.com 2019 - 2024. All rights reserved.