[英]How do you get the http status code of a Video File using libcurl in C++?
以下libcurl代码似乎适用于图像文件(.gif,.jpeg等)和文本文件(.txt,.xml等)。 这些文件的http状态代码成功返回。
但是,它无法处理视频文件,例如(.mp4)。 它似乎崩溃了,并在控制台中输出了奇怪的字符。
如何获取视频文件的http状态代码? 我只想看看视频文件是否可访问。 谢谢。
string httpStatusCode(string s)
{
CURL *session;
session = curl_easy_init();
curl_easy_setopt(session, CURLOPT_URL, s.c_str());
CURLcode curl_code = curl_easy_perform (session);
long http_code = 0;
curl_easy_getinfo (session, CURLINFO_RESPONSE_CODE, &http_code);
if (http_code == 200 && curl_code != CURLE_ABORTED_BY_CALLBACK)
cout << "Success!" << endl;
else
cout << "Failure!" << endl;
curl_easy_cleanup(session);
std::ostringstream buff;
buff << http_code;
return buff.str();
}
int main(void)
{
for(unsigned int i=0; i < 10000; i++)
{
cout << "Iteration # " << i << endl;
string url = "http://www.example.com/video.mp4";
cout << httpStatusCode(url) << endl;
}
return 0;
}
谢谢@Igor。 我找到了解决方案。 通过添加以下行,它将仅发出HEAD请求,而不下载内容(这解释了写入日志的奇怪字符):
curl_easy_setopt(session,CURLOPT_NOBODY,true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.