I want to build the following URI -
https://10.112.88.182:8443/Vehicle/services/socialService/login ...
Builder builder = new Builder(); builder.scheme(Constants.URL_SCHEME); builder.authority(host); builder.appendPath(service + "/" +method); return builder.build().toString(); where
URL_SCHEME - https host - 10.112.88.182:8443/Vehicle/services/ service - socialService method - login When this code runs I get the following URI -
https://10.112.88.182%3A8443%2FVehicle%2Fservices%2F/socialService%2Flogin / is replaced by %2F and : is replaced by %3A
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With