代码之家  ›  专栏  ›  技术社区  ›  Denis Detochka

收到回调的Libcurl分块http消息

  •  1
  • Denis Detochka  · 技术社区  · 6 年前

    libcurl是否公开了在收到分块http消息时要调用的回调? 一台服务器与客户端建立基于comet的http连接。 所以客户端使用常规http发送打开连接的请求, 服务器通过包含客户端要处理的信息的分块http消息进行响应。使用打开的连接,服务器可以在一个http请求上向客户端发送多条消息。每个都必须进行不同的处理。

    有没有一种方法可以在发送完这些消息后不必等待连接关闭就可以获得这些消息?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Daniel Stenberg    6 年前

    默认情况下,libcurl不会公开块限制/边界(如果您这样问的话)。libcurl将“解码”分块编码的数据,并使用有效负载内容调用写回调,而不向应用程序透露分块。然后,libcurl可以为每个传入的块调用写入回调一次或多次。

    或者,您可以选择更为核心的方式,让libcurl“未编码”地交付数据,这样回调就可以获得整个内容,包括分块的编码元数据,这样您就可以自己解码。您可以使用 CURLOPT_HTTP_CONTENT_DECODING 选项