org.apache.hc.client5.http.utils

## Class URIBuilder

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

    @NotThreadSafe
    public class URIBuilder
    extends Object

Builder for `URI` instances.

Since:
  4.2

### Constructor Summary

Constructors
Constructor and Description
`URIBuilder()` Constructs an empty instance.
`URIBuilder(String string)` Construct an instance from the string which must be a valid URI.
`URIBuilder(URI uri)` Construct an instance from the provided URI.

### Method Summary

Methods
`URIBuilder` `addParameter(String param, String value)` Adds parameter to URI query.
`URIBuilder` `addParameters(List<org.apache.hc.core5.http.NameValuePair> nvps)` Adds URI query parameters.
`URI` `build()` Builds a `URI` instance.
`URIBuilder` `clearParameters()` Clears URI query parameters.
`Charset` `getCharset()`
`String` `getFragment()`
`String` `getHost()`
`String` `getPath()`
`int` `getPort()`
`List<org.apache.hc.core5.http.NameValuePair>` `getQueryParams()`
`String` `getScheme()`
`String` `getUserInfo()`
`boolean` `isAbsolute()`
`boolean` `isOpaque()`
`URIBuilder` `removeQuery()` Removes URI query.
`URIBuilder` `setCharset(Charset charset)`
`URIBuilder` `setCustomQuery(String query)` Sets custom URI query.
`URIBuilder` `setFragment(String fragment)` Sets URI fragment.
`URIBuilder` `setHost(String host)` Sets URI host.
`URIBuilder` `setParameter(String param, String value)` Sets parameter of URI query overriding existing value if set.
`URIBuilder` `setParameters(List<org.apache.hc.core5.http.NameValuePair> nvps)` Sets URI query parameters.
`URIBuilder` `setParameters(org.apache.hc.core5.http.NameValuePair... nvps)` Sets URI query parameters.
`URIBuilder` `setPath(String path)` Sets URI path.
`URIBuilder` `setPort(int port)` Sets URI port.
`URIBuilder` `setScheme(String scheme)` Sets URI scheme.
`URIBuilder` `setUserInfo(String userInfo)` Sets URI user info.
`URIBuilder` `setUserInfo(String username, String password)` Sets URI user info as a combination of username and password.
`String` `toString()`

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

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

### Constructor Detail

#### URIBuilder

    public URIBuilder()

Constructs an empty instance.

#### URIBuilder

    public URIBuilder(String string)
               throws URISyntaxException

Construct an instance from the string which must be a valid URI.

Parameters:
  `string` - a valid URI in string form
Throws:
  `URISyntaxException` - if the input is not a valid URI

#### URIBuilder

    public URIBuilder(URI uri)

Construct an instance from the provided URI.

Parameters:
  `uri` -

### Method Detail

#### setCharset

    public URIBuilder setCharset(Charset charset)

Since:
  4.4

#### getCharset

    public Charset getCharset()

Since:
  4.4

#### build

    public URI build()
              throws URISyntaxException

Builds a `URI` instance.

Throws:
  `URISyntaxException`

#### setScheme

    public URIBuilder setScheme(String scheme)

Sets URI scheme.

#### setUserInfo

    public URIBuilder setUserInfo(String userInfo)

Sets URI user info. The value is expected to be unescaped and may contain non ASCII characters.

#### setUserInfo

    public URIBuilder setUserInfo(String username,
                         String password)

Sets URI user info as a combination of username and password. These values are expected to be unescaped and may contain non ASCII characters.

#### setHost

    public URIBuilder setHost(String host)

Sets URI host.

#### setPort

    public URIBuilder setPort(int port)

Sets URI port.

#### setPath

    public URIBuilder setPath(String path)

Sets URI path. The value is expected to be unescaped and may contain non ASCII characters.

#### removeQuery

    public URIBuilder removeQuery()

Removes URI query.

#### setParameters

    public URIBuilder setParameters(List<org.apache.hc.core5.http.NameValuePair> nvps)

Sets URI query parameters. The parameter name / values are expected to be unescaped and may contain non ASCII characters.

Please note query parameters and custom query component are mutually exclusive. This method will remove custom query if present.

Since:
  4.3

#### addParameters

    public URIBuilder addParameters(List<org.apache.hc.core5.http.NameValuePair> nvps)

Adds URI query parameters. The parameter name / values are expected to be unescaped and may contain non ASCII characters.

Please note query parameters and custom query component are mutually exclusive. This method will remove custom query if present.

Since:
  4.3

#### setParameters

    public URIBuilder setParameters(org.apache.hc.core5.http.NameValuePair... nvps)

Sets URI query parameters. The parameter name / values are expected to be unescaped and may contain non ASCII characters.

Please note query parameters and custom query component are mutually exclusive. This method will remove custom query if present.

Since:
  4.3

#### addParameter

    public URIBuilder addParameter(String param,
                          String value)

Adds parameter to URI query. The parameter name and value are expected to be unescaped and may contain non ASCII characters.

Please note query parameters and custom query component are mutually exclusive. This method will remove custom query if present.

#### setParameter

    public URIBuilder setParameter(String param,
                          String value)

Sets parameter of URI query overriding existing value if set. The parameter name and value are expected to be unescaped and may contain non ASCII characters.

Please note query parameters and custom query component are mutually exclusive. This method will remove custom query if present.

#### clearParameters

    public URIBuilder clearParameters()

Clears URI query parameters.

Since:
  4.3

#### setCustomQuery

    public URIBuilder setCustomQuery(String query)

Sets custom URI query. The value is expected to be unescaped and may contain non ASCII characters.

Please note query parameters and custom query component are mutually exclusive. This method will remove query parameters if present.

Since:
  4.3

#### setFragment

    public URIBuilder setFragment(String fragment)

Sets URI fragment. The value is expected to be unescaped and may contain non ASCII characters.

#### isAbsolute

    public boolean isAbsolute()

Since:
  4.3

#### isOpaque

    public boolean isOpaque()

Since:
  4.3

#### getScheme

    public String getScheme()

#### getUserInfo

    public String getUserInfo()

#### getHost

    public String getHost()

#### getPort

    public int getPort()

#### getPath

    public String getPath()

#### getQueryParams

    public List<org.apache.hc.core5.http.NameValuePair> getQueryParams()

#### getFragment

    public String getFragment()

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`