...
This noncompliant code example takes a user input query string and build a URL. Because the URL is not properly encoded, the URL returned is not valid because it contains non-URL-safe characters RFC 1738
Code Block | ||
---|---|---|
| ||
String buildUrl(String q) {
//user inputs the argument "#YOLO2018"
String url = "https://example.com?query=" + q;
return url;
}
|
The url
returned is is "https://example.com?query=#YOLO2018"
which is not a valid URL.
Compliant Solution
Code Block | ||
---|---|---|
| ||
String buildEncodedUrl(String q) {
String origUrl = "https://example.com?query=" + q;
String encodedUrl = Base64.getUrlEncoder().encodeToString(origUrl.getBytes());
return encodedUrl;
}
|
The encodedUrl
returned is "https%3A%2F%2Fexample.com%3Fquery%3D%23YOLO2018"
which is a valid URL. Use java.util.Base64
to encode and decode when transferring binary data over mediums that only allow printable characters like URLs, filenames, and MIME.
...