【发布时间】:2020-03-03 17:56:02
【问题描述】:
我经常使用 curl 下载文件。然而,服务器做了一件棘手的事情:它返回非 200 代码并仍然发送一些数据。问题是我有数据写入后的HTTP代码,但如果不是200我不想写任何东西。有谁知道不将数据存储在磁盘或内存上的方法?
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlWriteHandler);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, ptr);
res = curl_easy_perform(curl);
if (res == CURLE_OK) {
return 0;
}
long response_code;
curl_easy_getinfo(curl_.get(), CURLINFO_RESPONSE_CODE, &response_code);
if (response_code != 200) {
return 0;
}
size_t curlWriteHandler(char* chars, size_t size, size_t nmemb, void* userp) {
// write to file
return size * nmemb;
}
【问题讨论】:
-
在非200的情况下下载的是什么数据?
-
这是一些 html 错误。