in sdk/core/azure-core-http/src/main/java/com/azure/android/core/http/util/UrlBuilder.java [192:243]
private UrlBuilder with(String text, UrlTokenizerState startState) {
final UrlTokenizer tokenizer = new UrlTokenizer(text, startState);
while (tokenizer.next()) {
final UrlToken token = tokenizer.current();
final String tokenText = token.text();
final UrlTokenType tokenType = token.type();
switch (tokenType) {
case SCHEME:
scheme = emptyToNull(tokenText);
break;
case HOST:
host = emptyToNull(tokenText);
break;
case PORT:
port = emptyToNull(tokenText);
break;
case PATH:
final String tokenPath = emptyToNull(tokenText);
if (path == null || path.equals("/") || !tokenPath.equals("/")) {
path = tokenPath;
}
break;
case QUERY:
String queryString = emptyToNull(tokenText);
if (queryString != null) {
if (queryString.startsWith("?")) {
queryString = queryString.substring(1);
}
for (String entry : queryString.split("&")) {
String[] nameValue = entry.split("=");
if (nameValue.length == 2) {
setQueryParameter(nameValue[0], nameValue[1]);
} else {
setQueryParameter(nameValue[0], "");
}
}
}
break;
default:
break;
}
}
return this;
}