curl-curl/docs/libcurl/curl_url.md
Patrick Monnerat 92e6782d1f
doc: some returned in-memory data may not be altered
Some public prototypes do not declare return values or out parameters as
const where they should be. Avoid changing the public interface, but
document those values as read-only.

Closes #19692
2025-11-25 11:05:27 +01:00

1.3 KiB

c SPDX-License-Identifier Title Section Source See-also Protocol Added-in
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. curl curl_url 3 libcurl
CURLOPT_CURLU (3)
curl_url_cleanup (3)
curl_url_dup (3)
curl_url_get (3)
curl_url_set (3)
curl_url_strerror (3)
All
7.62.0

NAME

curl_url - create a URL handle

SYNOPSIS

#include <curl/curl.h>

CURLU *curl_url();

DESCRIPTION

This function allocates a URL object and returns a CURLU handle for it, to be used as input to all other URL API functions.

This is a handle to a URL object that holds or can hold URL components for a single URL. When the object is first created, there is of course no components stored. They are then set in the object with the curl_url_set(3) function.

The object must be destroyed with a call to curl_url_cleanup(3) when no longer needed.

%PROTOCOLS%

EXAMPLE

int main(void)
{
  CURLUcode rc;
  CURLU *url = curl_url();
  rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
  if(!rc) {
    char *scheme;
    rc = curl_url_get(url, CURLUPART_SCHEME, &scheme, 0);
    if(!rc) {
      printf("the scheme is %s\n", scheme);
      curl_free(scheme);
    }
    curl_url_cleanup(url);
  }
}

%AVAILABILITY%

RETURN VALUE

Returns a **CURLU *** if successful, or NULL if out of memory.