1

データの POST、GET、ダウンロード、およびアップロードに CURL ライブラリを使用しています。何らかの理由でリクエストが失敗した場合、リクエストを再試行する予定でした。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;
}
4

1 に答える 1

1

http-status-code を確認することをお勧めします。

curl_easy_getinfo(curl, CURLINFO_HTTP_CODE, &http_status);
if (http_status == ...) {
    break;
}
于 2013-06-26T04:26:00.903 に答える