org.apache.hc.client5.http.utils

## Class URIUtils

- java.lang.Object
- - org.apache.hc.client5.http.utils.URIUtils

-     public class URIUtils
      extends Object

  A collection of utilities for `URIs`, to workaround bugs within the class or for ease-of-use features.
  Since:
    4.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static URI` | `create(org.apache.hc.core5.http.HttpHost host, String path)` Convenience factory method for `URI` instances.
    `static URI` | `create(String scheme, org.apache.hc.core5.net.URIAuthority host, String path)` Convenience factory method for `URI` instances.
    `static org.apache.hc.core5.http.HttpHost` | `extractHost(URI uri)` Extracts target host from the given `URI`.
    `static URI` | `resolve(URI originalURI, org.apache.hc.core5.http.HttpHost target, List<URI> redirects)` Derives the interpreted (absolute) URI that was used to generate the last request.
    `static URI` | `resolve(URI baseURI, String reference)` Resolves a URI reference against a base URI.
    `static URI` | `resolve(URI baseURI, URI reference)` Resolves a URI reference against a base URI.
    `static URI` | `rewriteURI(URI uri)` A convenience method that creates a new `URI` whose scheme, host, port, path, query are taken from the existing URI, dropping any fragment or user-information.
    `static URI` | `rewriteURI(URI uri, org.apache.hc.core5.http.HttpHost target)` A convenience method for `rewriteURI(URI, HttpHost, boolean)` that always keeps the fragment.
    `static URI` | `rewriteURI(URI uri, org.apache.hc.core5.http.HttpHost target, boolean dropFragment)` A convenience method for creating a new `URI` whose scheme, host and port are taken from the target host, but whose path, query and fragment are taken from the existing URI.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### rewriteURI

          public static URI rewriteURI(URI uri,
                       org.apache.hc.core5.http.HttpHost target,
                       boolean dropFragment)
                                throws URISyntaxException

      A convenience method for creating a new `URI` whose scheme, host and port are taken from the target host, but whose path, query and fragment are taken from the existing URI. The fragment is only used if dropFragment is false. The path is set to "/" if not explicitly specified.
      Parameters:
        `uri` - Contains the path, query and fragment to use.
        `target` - Contains the scheme, host and port to use.
        `dropFragment` - True if the fragment should not be copied.
      Throws:
        `URISyntaxException` - If the resulting URI is invalid.

    - #### rewriteURI

          public static URI rewriteURI(URI uri,
                       org.apache.hc.core5.http.HttpHost target)
                                throws URISyntaxException

      A convenience method for `rewriteURI(URI, HttpHost, boolean)` that always keeps the fragment.
      Throws:
        `URISyntaxException`

    - #### rewriteURI

          public static URI rewriteURI(URI uri)
                                throws URISyntaxException

      A convenience method that creates a new `URI` whose scheme, host, port, path, query are taken from the existing URI, dropping any fragment or user-information. The path is set to "/" if not explicitly specified. The existing URI is returned unmodified if it has no fragment or user-information and has a path.
      Parameters:
        `uri` - original URI.
      Throws:
        `URISyntaxException` - If the resulting URI is invalid.

    - #### resolve

          public static URI resolve(URI baseURI,
                    String reference)

      Resolves a URI reference against a base URI. Work-around for bug in java.net.URI (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535)
      Parameters:
        `baseURI` - the base URI
        `reference` - the URI reference
      Returns:
        the resulting URI

    - #### resolve

          public static URI resolve(URI baseURI,
                    URI reference)

      Resolves a URI reference against a base URI. Work-around for bugs in java.net.URI (e.g. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535)
      Parameters:
        `baseURI` - the base URI
        `reference` - the URI reference
      Returns:
        the resulting URI

    - #### extractHost

          public static org.apache.hc.core5.http.HttpHost extractHost(URI uri)

      Extracts target host from the given `URI`.
      Parameters:
        `uri` -
      Returns:
        the target host if the URI is absolute or `null` if the URI is relative or does not contain a valid host name.
      Since:
        4.1

    - #### resolve

          public static URI resolve(URI originalURI,
                    org.apache.hc.core5.http.HttpHost target,
                    List<URI> redirects)
                             throws URISyntaxException

      Derives the interpreted (absolute) URI that was used to generate the last request. This is done by extracting the request-uri and target origin for the last request and scanning all the redirect locations for the last fragment identifier, then combining the result into a `URI`.
      Parameters:
        `originalURI` - original request before any redirects
        `target` - if the last URI is relative, it is resolved against this target, or `null` if not available.
        `redirects` - collection of redirect locations since the original request or `null` if not available.
      Returns:
        interpreted (absolute) URI
      Throws:
        `URISyntaxException`

    - #### create

          public static URI create(org.apache.hc.core5.http.HttpHost host,
                   String path)
                            throws URISyntaxException

      Convenience factory method for `URI` instances.
      Throws:
        `URISyntaxException`
      Since:
        5.0

    - #### create

          public static URI create(String scheme,
                   org.apache.hc.core5.net.URIAuthority host,
                   String path)
                            throws URISyntaxException

      Convenience factory method for `URI` instances.
      Throws:
        `URISyntaxException`
      Since:
        5.0

Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.