Skip to content

url_parse() parses a URL into its component parts, powered by curl::curl_parse_url(). The parsing algorithm follows the specifications detailed in RFC 3986.

Usage

url_parse(url, base_url = NULL)

Arguments

url

A string containing the URL to parse.

base_url

Use this as a parent, if url is a relative URL.

Value

An S3 object of class httr2_url with the following components: scheme, hostname, username, password, port, path, query, and fragment.

See also

Other URL manipulation: url_build(), url_modify()

Examples

url_parse("http://google.com/")
#> <httr2_url> http://google.com/
#> * scheme: http
#> * hostname: google.com
#> * path: /
url_parse("http://google.com:80/")
#> <httr2_url> http://google.com:80/
#> * scheme: http
#> * hostname: google.com
#> * port: 80
#> * path: /
url_parse("http://google.com:80/?a=1&b=2")
#> <httr2_url> http://google.com:80/?a=1&b=2
#> * scheme: http
#> * hostname: google.com
#> * port: 80
#> * path: /
#> * query:
#>   * a: 1
#>   * b: 2
url_parse("http://username@google.com:80/path;test?a=1&b=2#40")
#> <httr2_url> http://username@google.com:80/path%3Btest?a=1&b=2#40
#> * scheme: http
#> * hostname: google.com
#> * username: username
#> * port: 80
#> * path: /path;test
#> * query:
#>   * a: 1
#>   * b: 2
#> * fragment: 40

# You can parse a relative URL if you also provide a base url
url_parse("foo", "http://google.com/bar/")
#> <httr2_url> http://google.com/bar/foo
#> * scheme: http
#> * hostname: google.com
#> * path: /bar/foo
url_parse("..", "http://google.com/bar/")
#> <httr2_url> http://google.com/
#> * scheme: http
#> * hostname: google.com
#> * path: /