我正在使用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;
}
答案 0 :(得分:1)
您最好查看http-status-code。
curl_easy_getinfo(curl, CURLINFO_HTTP_CODE, &http_status);
if (http_status == ...) {
break;
}