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.