curl / libcurl / API / curl_easy_getinfo / CURLINFO_EFFECTIVE_URL

CURLINFO_EFFECTIVE_URL explained

Name

CURLINFO_EFFECTIVE_URL - last used URL

Synopsis

#include <curl/curl.h>
 
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_URL, char **urlp);

Description

Pass in a pointer to a char pointer and get the last used effective URL.

In cases when you have asked libcurl to follow redirects, it may not be the same value you set with CURLOPT_URL.

Any credentials (username and password) present in the URL are removed from the returned string.

If no URL has been used yet, urlp points to an empty string.

If the URL set with CURLOPT_URL cannot be parsed as a valid URL, urlp is set to NULL and an error is returned, typically CURLE_URL_MALFORMAT.

The urlp pointer is NULL or points to private memory. You must not free it. It memory gets freed automatically when you call curl_easy_cleanup on the corresponding curl handle.

The returned string has limited life-time. It might get destroyed at the next libcurl function call involving this same handle.

Protocols

This functionality affects http only

Example

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
    result = curl_easy_perform(curl);
    if(result == CURLE_OK) {
      char *url = NULL;
      curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &url);
      if(url)
        printf("Redirect to: %s\n", url);
    }
    curl_easy_cleanup(curl);
  }
}

Availability

Added in curl 7.4

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_FOLLOWLOCATION(3), curl_easy_getinfo(3), curl_easy_setopt(3)

This HTML page was made with roffit.