Libcurl chunked http 消息收到回调

Libcurl chunked http message received callback

当接收到分块的 http 消息时,libcurl 是否公开了一些要调用的回调? 一台服务器与客户端建立基于 comet 的 http 连接。 因此客户端使用常规 http 发送请求以打开连接, 服务器使用分块的 http 消息响应,其中包含要由客户端处理的信息。使用打开的连接,服务器可能会在一个 http 请求上向客户端发送多条消息。每个必须以不同的方式处理。

有没有办法在发送消息后获取这些消息,而无需等待连接关闭?

libcurl 默认情况下不会公开块 limits/borders,如果这是您要问的。 libcurl 将 "decode" 分块编码数据并使用负载内容调用写入回调,而不会向应用程序透露这些块。然后 libcurl 可能会为每个传入块调用一次或多次写入回调。

可选地,您可以走更硬核的路线并要求 libcurl 传送数据 "unencoded",这样您的回调就可以获得全部内容,包括分块编码元数据,这样您就可以自己解码。您可以使用 CURLOPT_HTTP_CONTENT_DECODING 选项告诉 libcurl 这样做。