@@ -63,6 +63,9 @@ public final class HttpRequest {
63
63
64
64
private long maxSizeBytes = FileUtil .BYTES_PER_GB ;
65
65
66
+ private static final ThreadLocal <Map <String , Object >> threadLocalSettings
67
+ = ThreadLocal .withInitial (HashMap ::new );
68
+
66
69
@ Nonnull
67
70
public static HttpRequest create (String url , Object ... parameters ) {
68
71
return new HttpRequest (url , parameters );
@@ -546,8 +549,11 @@ private String appendGetParametersToUrl(String url) {
546
549
}
547
550
548
551
@ SuppressWarnings ("OverlyComplexMethod" )
549
- private static String [] validateAndEncodeParameters (String url , Object ... parameters ) {
550
- if (!UrlUtil .isValidUrl (url )) {
552
+ private String [] validateAndEncodeParameters (String url , Object ... parameters ) {
553
+ boolean skipIsValidUrlCheck = Boolean .TRUE .equals (
554
+ threadLocalSettings .get ().get ("skipIsValidUrlCheck" ));
555
+
556
+ if (!skipIsValidUrlCheck && !UrlUtil .isValidUrl (url )) {
551
557
throw new IllegalArgumentException ('\'' + url + "' is not a valid URL." );
552
558
}
553
559
@@ -831,6 +837,11 @@ static <K, V> Map<K, List<V>> getDeepUnmodifiableMap(Map<K, List<V>> map) {
831
837
return Collections .unmodifiableMap (copy );
832
838
}
833
839
840
+ @ SuppressWarnings ("unused" )
841
+ public static void putThreadLocalSetting (String key , Object value ) {
842
+ threadLocalSettings .get ().put (key , value );
843
+ }
844
+
834
845
static {
835
846
System .setProperty ("http.keepAlive" , "true" );
836
847
}
0 commit comments