繁体   English   中英

如何在C ++中使用libcurl获取视频文件的http状态代码?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM