6
6
import okhttp3 .OkHttpClient ;
7
7
import org .influxdb .impl .Preconditions ;
8
8
9
+ import java .net .URL ;
10
+ import java .net .MalformedURLException ;
9
11
import java .util .Objects ;
10
12
11
13
@@ -27,6 +29,7 @@ public enum InfluxDBFactory {
27
29
*/
28
30
public static InfluxDB connect (final String url ) {
29
31
Preconditions .checkNonEmptyString (url , "url" );
32
+ checkUrl (url );
30
33
return new InfluxDBImpl (url , null , null , new OkHttpClient .Builder ());
31
34
}
32
35
@@ -45,6 +48,7 @@ public static InfluxDB connect(final String url) {
45
48
public static InfluxDB connect (final String url , final String username , final String password ) {
46
49
Preconditions .checkNonEmptyString (url , "url" );
47
50
Preconditions .checkNonEmptyString (username , "username" );
51
+ checkUrl (url );
48
52
return new InfluxDBImpl (url , username , password , new OkHttpClient .Builder ());
49
53
}
50
54
@@ -60,6 +64,7 @@ public static InfluxDB connect(final String url, final String username, final St
60
64
public static InfluxDB connect (final String url , final OkHttpClient .Builder client ) {
61
65
Preconditions .checkNonEmptyString (url , "url" );
62
66
Objects .requireNonNull (client , "client" );
67
+ checkUrl (url );
63
68
return new InfluxDBImpl (url , null , null , client );
64
69
}
65
70
@@ -79,6 +84,7 @@ public static InfluxDB connect(final String url, final OkHttpClient.Builder clie
79
84
*/
80
85
public static InfluxDB connect (final String url , final String username , final String password ,
81
86
final OkHttpClient .Builder client ) {
87
+ checkUrl (url );
82
88
return connect (url , username , password , client , ResponseFormat .JSON );
83
89
}
84
90
@@ -103,6 +109,25 @@ public static InfluxDB connect(final String url, final String username, final St
103
109
Preconditions .checkNonEmptyString (url , "url" );
104
110
Preconditions .checkNonEmptyString (username , "username" );
105
111
Objects .requireNonNull (client , "client" );
112
+ checkUrl (url );
106
113
return new InfluxDBImpl (url , username , password , client , responseFormat );
107
114
}
115
+
116
+ /**
117
+ * Check url is legal
118
+ */
119
+ private static void checkUrl (final String url ) {
120
+ String colon = ":" ;
121
+ if (!url .contains (colon ) || url .endsWith (colon )) {
122
+ throw new IllegalArgumentException (String .format ("The url [%s] port cannot be null" , url ));
123
+ }
124
+ try {
125
+ URL urlObj = new URL (url );
126
+ if (-1 == urlObj .getPort ()) {
127
+ throw new IllegalArgumentException (String .format ("The url [%s] port cannot be null" , url ));
128
+ }
129
+ } catch (MalformedURLException e ) {
130
+ throw new RuntimeException (e );
131
+ }
132
+ }
108
133
}
0 commit comments