curl / libcurl / API / curl_easy_getinfo / CURLINFO_RETRY_AFTER

CURLINFO_RETRY_AFTER explained

Name

CURLINFO_RETRY_AFTER - returns the Retry-After retry delay

Synopsis

#include <curl/curl.h>
 
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RETRY_AFTER,
                           curl_off_t *retry);

Description

Pass a pointer to a curl_off_t variable to receive the number of seconds the HTTP server suggests the client should wait until the next request is issued. The information from the "Retry-After:" header.

While the HTTP header might contain a fixed date string, the CURLINFO_RETRY_AFTER always returns the number of seconds to wait - or zero if there was no header or the header could not be parsed.

This option used to return a negative wait time if the server provided a date in the past. Since 8.12.0, a negative wait time is returned as zero. In any case we recommend checking that the wait time is within an acceptable range for your circumstance.

Default

Zero if there was no header.

Protocols

This functionality affects all supported protocols

Example

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode res;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    res = curl_easy_perform(curl);
    if(res == CURLE_OK) {
      curl_off_t wait = 0;
      curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &wait);
      if(wait)
        printf("Wait for %" CURL_FORMAT_CURL_OFF_T " seconds\n", wait);
    }
    curl_easy_cleanup(curl);
  }
}

Availability

Added in curl 7.66.0

Return value

curl_easy_getinfo returns a CURLcode indicating success or error.

CURLE_OK (0) means everything was OK, non-zero means an error occurred, see libcurl-errors.

See also

CURLOPT_HEADERFUNCTION(3), CURLOPT_STDERR(3), curl_easy_header(3)

This HTML page was made with roffit.