我已阅读 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_POSTFIELDSIZE
或 CURLOPT_INFILESIZE
,具体取决于特定请求。
关于c - CURLOPT_READFUNCTION 在高层次上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703048/