CURL请求失败重试方法

时间:2013-06-26 03:51:13

标签: c++ curl

我正在使用CURL库进行POST,GET,下载和上传数据。出于某种原因,如果请求失败,那么我们计划再次重试请求。我们计划重试5次,即使失败然后我们停止并向用户显示失败消息。为此,我们在循环中运行此延迟10秒。

我的问题。

1)我的方法是否正确。

2)什么是最佳实践。

更新

int _tmain(int argc, _TCHAR* argv[])
{
    CURL *curl;
    CURLcode res;

    int nRetryCount = 0;
    do 
    {
        curl_global_init(CURL_GLOBAL_DEFAULT); 

        curl = curl_easy_init();
        if(curl) 
        {
            curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com/");

            res = curl_easy_perform(curl);

            curl_easy_cleanup(curl);

            if(CURLE_OK == res) 
            {
                break;
            }

            nRetryCount++;

            if (nRetryCount < 5)
            {
                //wait for 10 sec.
                Sleep(10000);
            }       
        }
    } while (nRetryCount < 5);


    curl_global_cleanup();

    return 0;
}

1 个答案:

答案 0 :(得分:1)

您最好查看http-status-code。

curl_easy_getinfo(curl, CURLINFO_HTTP_CODE, &http_status);
if (http_status == ...) {
    break;
}