Class Uri

  • All Implemented Interfaces:
    java.io.Serializable, scala.Equals, scala.Product
    Direct Known Subclasses:
    Uri.Empty$

    public abstract class Uri
    extends java.lang.Object
    implements scala.Product, java.io.Serializable
    An immutable model of an internet URI as defined by https://tools.ietf.org/html/rfc3986. All members of this class represent the *decoded* URI elements (i.e. without percent-encoding), with the exception of 'rawQueryString': rawQueryString should be a string that only contains characters permitted by https://tools.ietf.org/html/rfc3986#section-3.4, any other characters must be percent-encoded (for example through UriParser.parseRawQueryString)
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      Uri​(java.lang.String scheme, Uri.Authority authority, Uri.Path path, scala.Option<java.lang.String> rawQueryString, scala.Option<java.lang.String> fragment)  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static Uri apply​(akka.parboiled2.ParserInput input)
      Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1.
      static Uri apply​(akka.parboiled2.ParserInput input, Uri.ParsingMode mode)
      Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1.
      static Uri apply​(akka.parboiled2.ParserInput input, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1.
      static Uri apply​(java.lang.String input)
      Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1.
      static Uri apply​(java.lang.String scheme, Uri.Authority authority, Uri.Path path, scala.Option<java.lang.String> queryString, scala.Option<java.lang.String> fragment)
      Creates a new Uri instance from the given components.
      Uri.Authority authority()  
      static Uri.Path collapseDotSegments​(Uri.Path path)  
      Uri copy​(java.lang.String scheme, Uri.Authority authority, Uri.Path path, scala.Option<java.lang.String> rawQueryString, scala.Option<java.lang.String> fragment)
      Returns a copy of this Uri with the given components.
      static Uri create​(java.lang.String scheme, Uri.Authority authority, Uri.Path path, scala.Option<java.lang.String> queryString, scala.Option<java.lang.String> fragment)  
      static Uri create​(java.lang.String scheme, java.lang.String userinfo, Uri.Host host, int port, Uri.Path path, scala.Option<java.lang.String> queryString, scala.Option<java.lang.String> fragment)  
      static Uri createUnsafe​(java.lang.String scheme, Uri.Authority authority, Uri.Path path, scala.Option<java.lang.String> queryString, scala.Option<java.lang.String> fragment)
      'Unsafe' in the sense that queryString validation must already have been done.
      static java.lang.String decode​(java.lang.String string, java.nio.charset.Charset charset)  
      static java.lang.String decode​(java.lang.String string, java.nio.charset.Charset charset, int ix, java.lang.StringBuilder sb)  
      static Uri effectiveHttpRequestUri​(java.lang.String scheme, Uri.Host host, int port, Uri.Path path, scala.Option<java.lang.String> query, scala.Option<java.lang.String> fragment, boolean securedConnection, Uri.Host hostHeaderHost, int hostHeaderPort, Uri.Authority defaultAuthority)
      Converts a set of URI components to an "effective HTTP request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5.
      int effectivePort()
      The effective port of this Uri given the currently set authority and scheme values.
      static Uri effectiveRequestUri​(java.lang.String scheme, Uri.Host host, int port, Uri.Path path, scala.Option<java.lang.String> query, scala.Option<java.lang.String> fragment, java.lang.String defaultScheme, Uri.Host hostHeaderHost, int hostHeaderPort, Uri.Authority defaultAuthority)
      Converts a set of URI components to an "effective request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5.
      static scala.runtime.Nothing$ fail​(java.lang.String summary, java.lang.String detail)  
      scala.Option<java.lang.String> fragment()  
      static Uri from​(java.lang.String scheme, java.lang.String userinfo, java.lang.String host, int port, java.lang.String path, scala.Option<java.lang.String> queryString, scala.Option<java.lang.String> fragment, Uri.ParsingMode mode)
      Creates a new Uri instance from the given components.
      static java.lang.String httpScheme​(boolean securedConnection)  
      boolean isAbsolute()  
      abstract boolean isEmpty()  
      boolean isRelative()  
      static java.lang.String normalize​(akka.parboiled2.ParserInput uri, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Normalizes the given URI string by performing the following normalizations: - the scheme and host components are converted to lowercase - a potentially existing port component is removed if it matches one of the defined default ports for the scheme - percent-encoded octets are decoded if allowed, otherwise they are converted to uppercase hex notation - . and .. path segments are resolved as far as possible
      static int normalizePort​(int port, java.lang.String scheme)  
      static java.lang.String normalizeScheme​(java.lang.String scheme)  
      static Uri parseAbsolute​(akka.parboiled2.ParserInput input, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses a string into a normalized absolute URI as defined by http://tools.ietf.org/html/rfc3986#section-4.3.
      static Uri parseAndResolve​(akka.parboiled2.ParserInput string, Uri base, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses a string into a normalized URI reference that is immediately resolved against the given base URI as defined by http://tools.ietf.org/html/rfc3986#section-5.2.
      static Uri.Authority parseHttp2AuthorityPseudoHeader​(akka.parboiled2.ParserInput headerValue, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses the given string as if it were the value of an HTTP/2 ":authority" pseudo-header.
      static scala.Tuple2<Uri.Path,​scala.Option<java.lang.String>> parseHttp2PathPseudoHeader​(akka.parboiled2.ParserInput headerValue, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses the given string as if it were the value of an HTTP/2 ":path" pseudo-header.
      static Uri parseHttpRequestTarget​(akka.parboiled2.ParserInput requestTarget, java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses the given string into an HTTP request target URI as defined by http://tools.ietf.org/html/rfc7230#section-5.3.
      Uri.Path path()  
      Uri.Query query​(java.nio.charset.Charset charset, Uri.ParsingMode mode)
      Parses the rawQueryString member into a Query instance.
      scala.Option<java.lang.String> queryString​(java.nio.charset.Charset charset)
      Returns the query part of the Uri in its decoded form.
      scala.Option<java.lang.String> rawQueryString()  
      Uri resolvedAgainst​(Uri base)
      Returns a new absolute Uri that is the result of the resolution process defined by http://tools.ietf.org/html/rfc3986#section-5.2.2 The given base Uri must be absolute.
      static Uri resolveUnsafe​(java.lang.String scheme, java.lang.String userinfo, Uri.Host host, int port, Uri.Path path, scala.Option<java.lang.String> query, scala.Option<java.lang.String> fragment, Uri base)
      https://tools.ietf.org/html/rfc3986#section-5.2.2
      java.lang.String scheme()  
      Uri toEffectiveHttpRequestUri​(Uri.Host hostHeaderHost, int hostHeaderPort, boolean securedConnection, Uri.Authority defaultAuthority)
      Converts this URI to an "effective HTTP request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5
      Uri toEffectiveRequestUri​(Uri.Host hostHeaderHost, int hostHeaderPort, java.lang.String defaultScheme, Uri.Authority defaultAuthority)
      Converts this URI to an "effective request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5
      Uri toHttpRequestTargetOriginForm()
      Converts this URI into an HTTP request target "origin-form" as defined by https://tools.ietf.org/html/rfc7230#section-5.3.
      Uri toRelative()
      Converts this URI into a relative URI by keeping the path, query and fragment, but dropping the scheme and authority.
      java.lang.String toString()  
      static Uri.Path verifyPath​(Uri.Path path, java.lang.String scheme, Uri.Host host)  
      static java.lang.String websocketScheme​(boolean securedConnection)  
      Uri withAuthority​(Uri.Authority authority)
      Returns a copy of this Uri with the given authority.
      Uri withAuthority​(Uri.Host host, int port, java.lang.String userinfo)
      Returns a copy of this Uri with a Authority created using the given host, port and userinfo.
      Uri withAuthority​(java.lang.String host, int port)
      Returns a copy of this Uri with a Authority created using the given host and port.
      Uri withFragment​(java.lang.String fragment)
      Returns a copy of this Uri with the given fragment.
      Uri withHost​(Uri.Host host)
      Returns a copy of this Uri with the given host.
      Uri withHost​(java.lang.String host)
      Returns a copy of this Uri with the given host.
      Uri withoutFragment()
      Drops the fragment from this URI
      Uri withPath​(Uri.Path path)
      Returns a copy of this Uri with the given path.
      Uri withPort​(int port)
      Returns a copy of this Uri with the given port.
      Uri withQuery​(Uri.Query query)
      Returns a copy of this Uri with the given query.
      Uri withRawQueryString​(java.lang.String rawQuery)
      Returns a copy of this Uri with the given query string.
      Uri withRawQueryString​(java.lang.String rawQueryString, Uri.ParsingMode mode)
      Returns a copy of this Uri with the given query string.
      Uri withScheme​(java.lang.String scheme)
      Returns a copy of this Uri with the given scheme.
      Uri withUserInfo​(java.lang.String userinfo)
      Returns a copy of this Uri with the given userinfo.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface scala.Equals

        canEqual, equals
      • Methods inherited from interface scala.Product

        productArity, productElement, productElementName, productElementNames, productIterator, productPrefix
    • Constructor Detail

      • Uri

        public Uri​(java.lang.String scheme,
                   Uri.Authority authority,
                   Uri.Path path,
                   scala.Option<java.lang.String> rawQueryString,
                   scala.Option<java.lang.String> fragment)
    • Method Detail

      • apply

        public static Uri apply​(java.lang.String input)
        Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1. Percent-encoded octets are UTF-8 decoded. Accepts unencoded visible 7-bit ASCII characters in addition to the RFC. If the given string is not a valid URI the method throws an IllegalUriException.
        Parameters:
        input - (undocumented)
        Returns:
        (undocumented)
      • apply

        public static Uri apply​(akka.parboiled2.ParserInput input)
        Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1. Percent-encoded octets are decoded using the given charset (where specified by the RFC). Accepts unencoded visible 7-bit ASCII characters in addition to the rfc. If the given string is not a valid URI the method throws an IllegalUriException.
        Parameters:
        input - (undocumented)
        Returns:
        (undocumented)
      • apply

        public static Uri apply​(akka.parboiled2.ParserInput input,
                                Uri.ParsingMode mode)
        Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1. Percent-encoded octets are decoded using the given charset (where specified by the RFC). If the given string is not a valid URI the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        input - (undocumented)
        Returns:
        (undocumented)
      • apply

        public static Uri apply​(akka.parboiled2.ParserInput input,
                                java.nio.charset.Charset charset,
                                Uri.ParsingMode mode)
        Parses a valid URI string into a normalized URI reference as defined by http://tools.ietf.org/html/rfc3986#section-4.1. Percent-encoded octets are decoded using the given charset (where specified by the RFC). If the given string is not a valid URI the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        input - (undocumented)
        charset - (undocumented)
        Returns:
        (undocumented)
      • apply

        public static Uri apply​(java.lang.String scheme,
                                Uri.Authority authority,
                                Uri.Path path,
                                scala.Option<java.lang.String> queryString,
                                scala.Option<java.lang.String> fragment)
        Creates a new Uri instance from the given components. All components are verified and normalized except the authority which is kept as provided. If the given combination of components does not constitute a valid URI as defined by http://tools.ietf.org/html/rfc3986 the method throws an IllegalUriException.

        Parameters:
        queryString - percent-encoded query string. When characters are encountered that are outside of the RFC3986 range they are automatically percent-encoded
        scheme - (undocumented)
        authority - (undocumented)
        path - (undocumented)
        fragment - (undocumented)
        Returns:
        (undocumented)
      • from

        public static Uri from​(java.lang.String scheme,
                               java.lang.String userinfo,
                               java.lang.String host,
                               int port,
                               java.lang.String path,
                               scala.Option<java.lang.String> queryString,
                               scala.Option<java.lang.String> fragment,
                               Uri.ParsingMode mode)
        Creates a new Uri instance from the given components. All components are verified and normalized. If the given combination of components does not constitute a valid URI as defined by http://tools.ietf.org/html/rfc3986 the method throws an IllegalUriException.
        Parameters:
        scheme - (undocumented)
        userinfo - (undocumented)
        host - (undocumented)
        port - (undocumented)
        path - (undocumented)
        queryString - (undocumented)
        fragment - (undocumented)
        mode - (undocumented)
        Returns:
        (undocumented)
      • parseAbsolute

        public static Uri parseAbsolute​(akka.parboiled2.ParserInput input,
                                        java.nio.charset.Charset charset,
                                        Uri.ParsingMode mode)
        Parses a string into a normalized absolute URI as defined by http://tools.ietf.org/html/rfc3986#section-4.3. Percent-encoded octets are decoded using the given charset (where specified by the RFC). If the given string is not a valid URI the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        input - (undocumented)
        charset - (undocumented)
        Returns:
        (undocumented)
      • parseAndResolve

        public static Uri parseAndResolve​(akka.parboiled2.ParserInput string,
                                          Uri base,
                                          java.nio.charset.Charset charset,
                                          Uri.ParsingMode mode)
        Parses a string into a normalized URI reference that is immediately resolved against the given base URI as defined by http://tools.ietf.org/html/rfc3986#section-5.2. Note that the given base Uri must be absolute (i.e. define a scheme). Percent-encoded octets are decoded using the given charset (where specified by the RFC). If the given string is not a valid URI the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        string - (undocumented)
        base - (undocumented)
        charset - (undocumented)
        Returns:
        (undocumented)
      • parseHttpRequestTarget

        public static Uri parseHttpRequestTarget​(akka.parboiled2.ParserInput requestTarget,
                                                 java.nio.charset.Charset charset,
                                                 Uri.ParsingMode mode)
        Parses the given string into an HTTP request target URI as defined by http://tools.ietf.org/html/rfc7230#section-5.3. If the given string is not a valid URI the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        requestTarget - (undocumented)
        charset - (undocumented)
        Returns:
        (undocumented)
      • parseHttp2PathPseudoHeader

        public static scala.Tuple2<Uri.Path,​scala.Option<java.lang.String>> parseHttp2PathPseudoHeader​(akka.parboiled2.ParserInput headerValue,
                                                                                                             java.nio.charset.Charset charset,
                                                                                                             Uri.ParsingMode mode)
        Parses the given string as if it were the value of an HTTP/2 ":path" pseudo-header. The result is a path and a query string as defined in https://tools.ietf.org/html/rfc7540#section-8.1.2.3 If the given string is not a valid path or query string the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        headerValue - (undocumented)
        charset - (undocumented)
        Returns:
        path and percent-encoded query string. When in in 'relaxed' mode, characters not permitted by https://tools.ietf.org/html/rfc3986#section-3.4 are already automatically percent-encoded here
      • parseHttp2AuthorityPseudoHeader

        public static Uri.Authority parseHttp2AuthorityPseudoHeader​(akka.parboiled2.ParserInput headerValue,
                                                                    java.nio.charset.Charset charset,
                                                                    Uri.ParsingMode mode)
        Parses the given string as if it were the value of an HTTP/2 ":authority" pseudo-header. The result is an authority object. https://tools.ietf.org/html/rfc7540#section-8.1.2.3 If the given string is not a valid path or query string the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        headerValue - (undocumented)
        charset - (undocumented)
        Returns:
        (undocumented)
      • normalize

        public static java.lang.String normalize​(akka.parboiled2.ParserInput uri,
                                                 java.nio.charset.Charset charset,
                                                 Uri.ParsingMode mode)
        Normalizes the given URI string by performing the following normalizations: - the scheme and host components are converted to lowercase - a potentially existing port component is removed if it matches one of the defined default ports for the scheme - percent-encoded octets are decoded if allowed, otherwise they are converted to uppercase hex notation - . and .. path segments are resolved as far as possible

        If the given string is not a valid URI the method throws an IllegalUriException.

        Parameters:
        mode - if Relaxed, accepts unencoded visible 7-bit ASCII characters in addition to the RFC.
        uri - (undocumented)
        charset - (undocumented)
        Returns:
        (undocumented)
      • effectiveHttpRequestUri

        public static Uri effectiveHttpRequestUri​(java.lang.String scheme,
                                                  Uri.Host host,
                                                  int port,
                                                  Uri.Path path,
                                                  scala.Option<java.lang.String> query,
                                                  scala.Option<java.lang.String> fragment,
                                                  boolean securedConnection,
                                                  Uri.Host hostHeaderHost,
                                                  int hostHeaderPort,
                                                  Uri.Authority defaultAuthority)
        Converts a set of URI components to an "effective HTTP request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5.
        Parameters:
        scheme - (undocumented)
        host - (undocumented)
        port - (undocumented)
        path - (undocumented)
        query - (undocumented)
        fragment - (undocumented)
        securedConnection - (undocumented)
        hostHeaderHost - (undocumented)
        hostHeaderPort - (undocumented)
        defaultAuthority - (undocumented)
        Returns:
        (undocumented)
      • effectiveRequestUri

        public static Uri effectiveRequestUri​(java.lang.String scheme,
                                              Uri.Host host,
                                              int port,
                                              Uri.Path path,
                                              scala.Option<java.lang.String> query,
                                              scala.Option<java.lang.String> fragment,
                                              java.lang.String defaultScheme,
                                              Uri.Host hostHeaderHost,
                                              int hostHeaderPort,
                                              Uri.Authority defaultAuthority)
        Converts a set of URI components to an "effective request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5.
        Parameters:
        scheme - (undocumented)
        host - (undocumented)
        port - (undocumented)
        path - (undocumented)
        query - (undocumented)
        fragment - (undocumented)
        defaultScheme - (undocumented)
        hostHeaderHost - (undocumented)
        hostHeaderPort - (undocumented)
        defaultAuthority - (undocumented)
        Returns:
        (undocumented)
      • httpScheme

        public static java.lang.String httpScheme​(boolean securedConnection)
      • websocketScheme

        public static java.lang.String websocketScheme​(boolean securedConnection)
      • resolveUnsafe

        public static Uri resolveUnsafe​(java.lang.String scheme,
                                        java.lang.String userinfo,
                                        Uri.Host host,
                                        int port,
                                        Uri.Path path,
                                        scala.Option<java.lang.String> query,
                                        scala.Option<java.lang.String> fragment,
                                        Uri base)
        https://tools.ietf.org/html/rfc3986#section-5.2.2

        'Unsafe' in the sense that queryString validation must already have been done.

        Parameters:
        query - percent-encoded query string that must be guaranteed not to contain invalid percent-encodings or characters not allowed by the RFC.
        scheme - (undocumented)
        userinfo - (undocumented)
        host - (undocumented)
        port - (undocumented)
        path - (undocumented)
        fragment - (undocumented)
        base - (undocumented)
        Returns:
        (undocumented)
      • decode

        public static java.lang.String decode​(java.lang.String string,
                                              java.nio.charset.Charset charset)
      • decode

        public static java.lang.String decode​(java.lang.String string,
                                              java.nio.charset.Charset charset,
                                              int ix,
                                              java.lang.StringBuilder sb)
      • normalizeScheme

        public static java.lang.String normalizeScheme​(java.lang.String scheme)
      • normalizePort

        public static int normalizePort​(int port,
                                        java.lang.String scheme)
      • collapseDotSegments

        public static Uri.Path collapseDotSegments​(Uri.Path path)
      • fail

        public static scala.runtime.Nothing$ fail​(java.lang.String summary,
                                                  java.lang.String detail)
      • create

        public static Uri create​(java.lang.String scheme,
                                 java.lang.String userinfo,
                                 Uri.Host host,
                                 int port,
                                 Uri.Path path,
                                 scala.Option<java.lang.String> queryString,
                                 scala.Option<java.lang.String> fragment)
        Parameters:
        queryString - percent-encoded query string. When characters are encountered that are outside of the RFC3986 range they are automatically percent-encoded
        scheme - (undocumented)
        userinfo - (undocumented)
        host - (undocumented)
        port - (undocumented)
        path - (undocumented)
        fragment - (undocumented)
        Returns:
        (undocumented)
      • create

        public static Uri create​(java.lang.String scheme,
                                 Uri.Authority authority,
                                 Uri.Path path,
                                 scala.Option<java.lang.String> queryString,
                                 scala.Option<java.lang.String> fragment)
        Parameters:
        queryString - percent-encoded query string. When characters are encountered that are outside of the RFC3986 range they are automatically percent-encoded
        scheme - (undocumented)
        authority - (undocumented)
        path - (undocumented)
        fragment - (undocumented)
        Returns:
        (undocumented)
      • createUnsafe

        public static Uri createUnsafe​(java.lang.String scheme,
                                       Uri.Authority authority,
                                       Uri.Path path,
                                       scala.Option<java.lang.String> queryString,
                                       scala.Option<java.lang.String> fragment)
        'Unsafe' in the sense that queryString validation must already have been done.

        Parameters:
        queryString - percent-encoded query string that must be guaranteed not to contain invalid percent-encodings or characters not allowed by the RFC.
        scheme - (undocumented)
        authority - (undocumented)
        path - (undocumented)
        fragment - (undocumented)
        Returns:
        (undocumented)
      • scheme

        public java.lang.String scheme()
      • rawQueryString

        public scala.Option<java.lang.String> rawQueryString()
      • fragment

        public scala.Option<java.lang.String> fragment()
      • isAbsolute

        public boolean isAbsolute()
      • isRelative

        public boolean isRelative()
      • isEmpty

        public abstract boolean isEmpty()
      • query

        public Uri.Query query​(java.nio.charset.Charset charset,
                               Uri.ParsingMode mode)
        Parses the rawQueryString member into a Query instance.
        Parameters:
        charset - (undocumented)
        mode - (undocumented)
        Returns:
        (undocumented)
      • queryString

        public scala.Option<java.lang.String> queryString​(java.nio.charset.Charset charset)
        Returns the query part of the Uri in its decoded form.
        Parameters:
        charset - (undocumented)
        Returns:
        (undocumented)
      • effectivePort

        public int effectivePort()
        The effective port of this Uri given the currently set authority and scheme values. If the authority has an explicitly set port (i.e. a non-zero port value) then this port is the effective port. Otherwise the default port for the current scheme is returned.
        Returns:
        (undocumented)
      • copy

        public Uri copy​(java.lang.String scheme,
                        Uri.Authority authority,
                        Uri.Path path,
                        scala.Option<java.lang.String> rawQueryString,
                        scala.Option<java.lang.String> fragment)
        Returns a copy of this Uri with the given components.

        If you want to use the copy constructor to update the 'rawQueryString', it is up to you to make sure the query string does not contain invalid characters. For this reason we recommend using Uri#withRawQueryString() instead.

        Parameters:
        scheme - (undocumented)
        authority - (undocumented)
        path - (undocumented)
        rawQueryString - (undocumented)
        fragment - (undocumented)
        Returns:
        (undocumented)
      • withScheme

        public Uri withScheme​(java.lang.String scheme)
        Returns a copy of this Uri with the given scheme. The scheme change of the Uri has the following effect on the port value: - If the Uri has a non-default port for the scheme before the change this port will remain unchanged. - If the Uri has the default port for the scheme before the change it will have the default port for the '''new''' scheme after the change.
        Parameters:
        scheme - (undocumented)
        Returns:
        (undocumented)
      • withAuthority

        public Uri withAuthority​(Uri.Authority authority)
        Returns a copy of this Uri with the given authority.
        Parameters:
        authority - (undocumented)
        Returns:
        (undocumented)
      • withAuthority

        public Uri withAuthority​(Uri.Host host,
                                 int port,
                                 java.lang.String userinfo)
        Returns a copy of this Uri with a Authority created using the given host, port and userinfo.
        Parameters:
        host - (undocumented)
        port - (undocumented)
        userinfo - (undocumented)
        Returns:
        (undocumented)
      • withAuthority

        public Uri withAuthority​(java.lang.String host,
                                 int port)
        Returns a copy of this Uri with a Authority created using the given host and port.
        Parameters:
        host - (undocumented)
        port - (undocumented)
        Returns:
        (undocumented)
      • withHost

        public Uri withHost​(Uri.Host host)
        Returns a copy of this Uri with the given host.
        Parameters:
        host - (undocumented)
        Returns:
        (undocumented)
      • withHost

        public Uri withHost​(java.lang.String host)
        Returns a copy of this Uri with the given host.
        Parameters:
        host - (undocumented)
        Returns:
        (undocumented)
      • withPort

        public Uri withPort​(int port)
        Returns a copy of this Uri with the given port.
        Parameters:
        port - (undocumented)
        Returns:
        (undocumented)
      • withPath

        public Uri withPath​(Uri.Path path)
        Returns a copy of this Uri with the given path.
        Parameters:
        path - (undocumented)
        Returns:
        (undocumented)
      • withUserInfo

        public Uri withUserInfo​(java.lang.String userinfo)
        Returns a copy of this Uri with the given userinfo.
        Parameters:
        userinfo - (undocumented)
        Returns:
        (undocumented)
      • withQuery

        public Uri withQuery​(Uri.Query query)
        Returns a copy of this Uri with the given query.
        Parameters:
        query - (undocumented)
        Returns:
        (undocumented)
      • withRawQueryString

        public Uri withRawQueryString​(java.lang.String rawQuery)
        Returns a copy of this Uri with the given query string.

        Characters that are not within the range described at https://tools.ietf.org/html/rfc3986#section-3.4 should be percent-encoded. Characters that are in that range may or may not be percent-encoded, and depending on how the query string is parsed this might be relevant: for example, when interpreting the query string as 'key=value' pairs you could use the percent-encoded '=' ('%22) to include a '=' in a key or value.

        When characters are encountered that are outside of the RFC3986 range they are automatically percent-encoded, but be aware that relying on this is usually a programming error.

        Parameters:
        rawQuery - (undocumented)
        Returns:
        (undocumented)
      • withRawQueryString

        public Uri withRawQueryString​(java.lang.String rawQueryString,
                                      Uri.ParsingMode mode)
        Returns a copy of this Uri with the given query string.

        Characters that are not within the range described at https://tools.ietf.org/html/rfc3986#section-3.4 must be percent-encoded. Characters that are in that range may or may not be percent-encoded, and depending on how the query string is parsed this might be relevant: for example, when interpreting the query string as 'key=value' pairs you could use the percent-encoded '=' ('%22) to include a '=' in the key or value.

        Parameters:
        mode - depending on the mode, characters outside of the range allowed by RFC3986 will either cause an IllegalUriException or be automatically percent-encoded. Be aware that relying on automatic percent-encoding is usually a programming error.
        rawQueryString - (undocumented)
        Returns:
        (undocumented)
      • withFragment

        public Uri withFragment​(java.lang.String fragment)
        Returns a copy of this Uri with the given fragment.
        Parameters:
        fragment - (undocumented)
        Returns:
        (undocumented)
      • resolvedAgainst

        public Uri resolvedAgainst​(Uri base)
        Returns a new absolute Uri that is the result of the resolution process defined by http://tools.ietf.org/html/rfc3986#section-5.2.2 The given base Uri must be absolute.
        Parameters:
        base - (undocumented)
        Returns:
        (undocumented)
      • toEffectiveHttpRequestUri

        public Uri toEffectiveHttpRequestUri​(Uri.Host hostHeaderHost,
                                             int hostHeaderPort,
                                             boolean securedConnection,
                                             Uri.Authority defaultAuthority)
        Converts this URI to an "effective HTTP request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5
        Parameters:
        hostHeaderHost - (undocumented)
        hostHeaderPort - (undocumented)
        securedConnection - (undocumented)
        defaultAuthority - (undocumented)
        Returns:
        (undocumented)
      • toEffectiveRequestUri

        public Uri toEffectiveRequestUri​(Uri.Host hostHeaderHost,
                                         int hostHeaderPort,
                                         java.lang.String defaultScheme,
                                         Uri.Authority defaultAuthority)
        Converts this URI to an "effective request URI" as defined by http://tools.ietf.org/html/rfc7230#section-5.5
        Parameters:
        hostHeaderHost - (undocumented)
        hostHeaderPort - (undocumented)
        defaultScheme - (undocumented)
        defaultAuthority - (undocumented)
        Returns:
        (undocumented)
      • toRelative

        public Uri toRelative()
        Converts this URI into a relative URI by keeping the path, query and fragment, but dropping the scheme and authority.
        Returns:
        (undocumented)
      • toHttpRequestTargetOriginForm

        public Uri toHttpRequestTargetOriginForm()
        Converts this URI into an HTTP request target "origin-form" as defined by https://tools.ietf.org/html/rfc7230#section-5.3.

        Note that the resulting URI instance is not a valid RFC 3986 URI! (As it might be a "relative" URI with a part component starting with a double slash.)

        Returns:
        (undocumented)
      • withoutFragment

        public Uri withoutFragment()
        Drops the fragment from this URI
        Returns:
        (undocumented)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object