C++libcurl来检查远程文件是否不同
C++ libcurl to check if remote file is different
我想知道是否可以在下载文件之前查询远程服务器上的文件,以了解它是否与本地文件不同。
例如,HTTP请求上的一个非常大的xml文件,如果我可以在不首先下载的情况下查看它是否发生了更改,我可以节省大量浪费的下载。
编辑:这可以修改日期,文件大小等
您可以运行HEAD请求来获取标头信息。根据服务器的不同,这些字段甚至可能包含带有文件校验和的Header字段(尽管不太可能)。正如Aleksandar所指出的,寻找"Last Modified"Header字段是一个良好的开端。有关如何使用libcurl仅获取标头的信息,请参阅此处:C++libcurl在下载正文之前检查标头
如果只检查修改日期就足够了,那么libcurl直接支持这一点-请参阅CURLOPT_TIMEVALUE。还有一个示例代码:
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* January 1, 2020 is 1577833200 */
curl_easy_setopt(curl, CURLOPT_TIMEVALUE, 1577833200L);
/* If-Modified-Since the above time stamp */
curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
/* Perform the request */
curl_easy_perform(curl);
}
相关文章:
- 在C++中使用没有合作伙伴Class/Cpp文件的头文件是否实用
- 在头文件上包含 cpp 文件是否有缺点?
- 如何检查文件是否已存在于 fstream C++中
- 预处理的 C/C++ 文件是否特定于计算机?
- 如何使用 jpeglib.h 获取文件是否为 JPEG 类型
- 如何在 Linux 下使用 c++ 知道文件是否被其他进程使用?
- 使用 g++ 编译时列出所有 cpp/cc 文件是否正常?
- 如何检查文件是否复制成功?(便携式解决方案)C++
- 如何检查 win32 exe 文件是否已运行?(使用 win32 API 代码)
- 如何检查每个头文件是否包含必需的包含文件?
- 为许多类可能需要的所有常量变量制作独立的头文件是否是一种很好的做法?
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- 如何检查给定文件是否是C++中的有效视频文件?
- 关于使用ifstream在C 中确定文件是否存在的问题
- #include 包含的头文件已包含的头文件是否常见?
- 如何测试文件是否被锁定和/或只读而不打开?
- 检查文件是否具有Windows c ++的可执行权限
- 检查给定的多个文件是否存在
- .txt文件是否已关闭
- 如果给定正确的运行时库,x86 可执行文件是否可以在任何 x86 平台上运行