libcurl:检测块编码响应的块边界
我正在使用 libcurl,目前是简单的 api。我正在向 Web 服务器发出请求,该服务器使用 HTTP 分块编码进行响应。我想知道是否有办法知道服务器中的块何时完成。我正在寻找某种类型的回调。 DEBUGDATA 似乎没有包含它,并且 CHUNK_END_FUNCTION 似乎不相关。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 CURLOPT_DEBUGFUNCTION 选项,您将获得“未分块”的数据”然后您可以根据需要自行扫描和解析数据,从而跟踪数据块的结尾或您喜欢的任何内容。 ()
正如“nm”已经说过的,libcurl 没有公开块的 API,因为它试图使传输编码对用户完全透明。
或者,应用程序可以告诉 libcurl 根本不解码分块传输编码,而是使用 CURLOPT_HTTP_TRANSFER_DECODING。
If you use the CURLOPT_DEBUGFUNCTION option you will get the data "un-chunked" and then you can scan and parse the data yourself as you see fit and thus track the end of chunks or whatever you like. ()
As "n.m." already said, libcurl has no API that exposes chunks as it tries to make the transfer encoding completely transparent to users.
Alternatively, applications can tell libcurl to not decode chunked transfer encoding at all and instead pass it on as-is to the application with CURLOPT_HTTP_TRANSFER_DECODING.
不,libcurl 没有任何 API 可以让您知道这一点。
No, libcurl doesn't have any API that would let you know that.