in src/main/java/com/aliyun/tea/Tea.java [19:57]
private static String composeUrl(TeaRequest request) {
Map<String, String> queries = request.query;
String host = request.headers.get("host");
String protocol = null == request.protocol ? "https" : request.protocol;
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append(protocol);
urlBuilder.append("://").append(host);
if (null != request.port) {
urlBuilder.append(":").append(request.port);
}
if (null != request.pathname) {
urlBuilder.append(request.pathname);
}
if (queries != null && !queries.isEmpty()) {
if (urlBuilder.indexOf("?") >= 1) {
urlBuilder.append("&");
} else {
urlBuilder.append("?");
}
try {
for (Map.Entry<String, String> entry : queries.entrySet()) {
String key = entry.getKey();
String val = entry.getValue();
if (null == val) {
continue;
}
urlBuilder.append(URLEncoder.encode(key, "UTF-8"));
urlBuilder.append("=");
urlBuilder.append(URLEncoder.encode(val, "UTF-8"));
urlBuilder.append("&");
}
} catch (Exception e) {
throw new TeaException(e.getMessage(), e);
}
int strIndex = urlBuilder.length();
urlBuilder.deleteCharAt(strIndex - 1);
}
return urlBuilder.toString();
}