限制 libcurl 响应数据

发布于 2024-09-18 12:30:50 字数 182 浏览 6 评论 0原文

我试图通过设置使用 libcurl 从源获取一些字节数:

curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, 100); //get 100 bytes from source

但我每次都会得到不同大小的数据,甚至有时只有 22 个字节。这有用吗?

i'm trying to get some number of bytes from source using libcurl by setting:

curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, 100); //get 100 bytes from source

But I get different size of data each time, not even close sometimes only 22 bytes. does this work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一城柳絮吹成雪 2024-09-25 12:30:50

从文档中:

传递一长串指定您的首选
接收缓冲区的大小(以字节为单位)
在 libcurl 中。这一点的要点
就是写回调得到
更频繁地调用并且使用更小的
大块。这仅被视为
请求,而不是命令。你不能是
保证实际得到给定的
尺寸。 (7.10新增)

该尺寸默认设置为
可能(CURL_MAX_WRITE_SIZE),所以它
仅在以下情况下使用此选项才有意义
你想要它更小。你想要它更小。

所以实际上没有任何简单的方法可以立即获得 100 字节。您需要记录收到的字节数,一旦收到 100 字节就停止读取。

From the documentation:

Pass a long specifying your preferred
size (in bytes) for the receive buffer
in libcurl. The main point of this
would be that the write callback gets
called more often and with smaller
chunks. This is just treated as a
request, not an order. You cannot be
guaranteed to actually get the given
size. (Added in 7.10)

This size is by default set as big as
possible (CURL_MAX_WRITE_SIZE), so it
only makes sense to use this option if
you want it smaller.you want it smaller.

So there isn't really any easy way to get 100 bytes right away. You would need to keep track of how many bytes you have received and just stop reading once you've got 100.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文