...
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.
...