CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CURLU, void *pointer);
CURLOPT_URL(3) or CURLOPT_CURLU(3) must be set before a transfer is started.
libcurl will use this handle and its contents read-only and will not change its contents. An application can very well update the contents of the URL handle after a transfer is done and if the same handle is then used in a subsequent request the updated contents will then be used.
CURL *handle = curl_easy_init(); CURLU *urlp = curl_url(); int res = 0; if(curl) { res = curl_url_set(urlp, CURLUPART_URL, "https://example.com", 0); curl_easy_setopt(handle, CURLOPT_CURLU, urlp); ret = curl_easy_perform(handle); curl_url_cleanup(urlp); curl_easy_cleanup(handle); }