This commit is contained in:
Looly 2021-09-10 21:17:41 +08:00
parent 783a02cce4
commit f08ae8cf7d
2 changed files with 30 additions and 11 deletions

View File

@ -174,6 +174,7 @@ public class URLEncoder implements Serializable {
encoder.addSafeCharacter('-'); encoder.addSafeCharacter('-');
encoder.addSafeCharacter('.'); encoder.addSafeCharacter('.');
encoder.addSafeCharacter('_'); encoder.addSafeCharacter('_');
encoder.addSafeCharacter('='); encoder.addSafeCharacter('=');
encoder.addSafeCharacter('&'); encoder.addSafeCharacter('&');
@ -216,21 +217,14 @@ public class URLEncoder implements Serializable {
/** /**
* 构造<br> * 构造<br>
* <p>
* [a-zA-Z0-9]默认不被编码 * [a-zA-Z0-9]默认不被编码
*/ */
public URLEncoder() { public URLEncoder() {
this(new BitSet(256)); this(new BitSet(256));
for (char i = 'a'; i <= 'z'; i++) { // unreserved
addSafeCharacter(i); addAlpha();
} addDigit();
for (char i = 'A'; i <= 'Z'; i++) {
addSafeCharacter(i);
}
for (char i = '0'; i <= '9'; i++) {
addSafeCharacter(i);
}
} }
/** /**
@ -312,4 +306,27 @@ public class URLEncoder implements Serializable {
} }
return rewrittenPath.toString(); return rewrittenPath.toString();
} }
/**
* 增加安全字符[a-z][A-Z]
*/
private void addAlpha() {
for (char i = 'a'; i <= 'z'; i++) {
addSafeCharacter(i);
}
for (char i = 'A'; i <= 'Z'; i++) {
addSafeCharacter(i);
}
}
/**
* 增加数字1-9
*/
private void addDigit() {
for (char i = '0'; i <= '9'; i++) {
addSafeCharacter(i);
}
}
} }

View File

@ -156,7 +156,9 @@ public final class UrlBuilder implements Serializable {
* @return UrlBuilder * @return UrlBuilder
*/ */
public static UrlBuilder of(String scheme, String host, int port, String path, String query, String fragment, Charset charset) { public static UrlBuilder of(String scheme, String host, int port, String path, String query, String fragment, Charset charset) {
return of(scheme, host, port, UrlPath.of(path, charset), UrlQuery.of(query, charset, false), fragment, charset); return of(scheme, host, port,
UrlPath.of(path, charset),
UrlQuery.of(query, charset, false), fragment, charset);
} }
/** /**