I want to build the following URI -
https://10.112.88.182:8443/Vehicle/services/socialService/login
...
Builder builder = new
The solution is quite simple, simply use appendEncodedPath()
, it will not encode your string, it just appends it as it is.
Like laalto said, this is how Uri.Builder works but if you want to get the uri in a regular url form, like in your case: https://10.112.88.182:8443/Vehicle/services/socialService/login
you can do:
URL url = new URL(URLDecoder.decode(builder.build().toString(), "UTF-8"));
That's how Uri.Builder
works. It encodes non-safe URL characters with special meaning to their %xx
hex values.
To prevent encoding URI parts that are already properly encoded, use the encoded
versions of builder functions:
builder.encodedAuthority(host);
builder.appendEncodedPath(service + "/" +method);
But since all your URL parts are already ready and don't need any further encoding, it's easier to just use a regular StringBuilder
to concatenate the parts.