c - CURLOPT_READFUNCTION 在高层次上做了什么?

标签 c curl

我已阅读 http://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html 上的文档。我知道 CURL 会触发 read_callback 来完成它的工作。

但在较高级别上,因为 read_callback 返回 size_t,例如 x 字节,所以 CURLOPT_READFUNCTION 的目的是告诉服务器,“嘿,我要向您发送 x 字节”。所以服务器确切地知道会发生什么。

这就是重点吗?

最佳答案

回调的目的是将 N 个字节的数据传递给 libcurl,以进行您要求其执行的传输。为了能够随着传输的进行一点一点地完成,libcurl 将一遍又一遍地调用它。

当 libcurl 即将发送数据时,它会通过此回调向应用程序询问要传输的确切字节。这就是全部目的。它需要返回数据量,以便 libcurl 知道您复制到其缓冲区的数据量。

服务器期望的总上传传输大小通常使用单独的选项进行设置,例如 CURLOPT_POSTFIELDSIZECURLOPT_INFILESIZE,具体取决于特定请求。

关于c - CURLOPT_READFUNCTION 在高层次上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703048/

相关文章:

linux - 如何使用 Bash 解析 HTTP header ?

c++ - "failed writing body & data"libcurl C++

c - 如何将 int 数组(保存十六进制浮点值)转换回 C 中的浮点值

在 hudson 上运行的 cUnit 测试

c - 从 64 位值获取最后两个字节

C 中的 Curl 问题,非常简单的示例返回错误 [Linker error] undefined reference to `_imp__curl_easy_init'

jquery - Okta API 或标准 CURL/ajax 问题

c - Visual Studio 2010 运行时检查失败 #3

c - 需要有关文件指针处的段错误的帮助

json - cURL 错误 - 无法发送 -d 的文本值