66import okhttp3 .OkHttpClient ;
77import org .influxdb .impl .Preconditions ;
88
9+ import java .net .URL ;
10+ import java .net .MalformedURLException ;
911import java .util .Objects ;
1012
1113
@@ -27,6 +29,7 @@ public enum InfluxDBFactory {
2729 */
2830 public static InfluxDB connect (final String url ) {
2931 Preconditions .checkNonEmptyString (url , "url" );
32+ checkUrl (url );
3033 return new InfluxDBImpl (url , null , null , new OkHttpClient .Builder ());
3134 }
3235
@@ -45,6 +48,7 @@ public static InfluxDB connect(final String url) {
4548 public static InfluxDB connect (final String url , final String username , final String password ) {
4649 Preconditions .checkNonEmptyString (url , "url" );
4750 Preconditions .checkNonEmptyString (username , "username" );
51+ checkUrl (url );
4852 return new InfluxDBImpl (url , username , password , new OkHttpClient .Builder ());
4953 }
5054
@@ -60,6 +64,7 @@ public static InfluxDB connect(final String url, final String username, final St
6064 public static InfluxDB connect (final String url , final OkHttpClient .Builder client ) {
6165 Preconditions .checkNonEmptyString (url , "url" );
6266 Objects .requireNonNull (client , "client" );
67+ checkUrl (url );
6368 return new InfluxDBImpl (url , null , null , client );
6469 }
6570
@@ -79,6 +84,7 @@ public static InfluxDB connect(final String url, final OkHttpClient.Builder clie
7984 */
8085 public static InfluxDB connect (final String url , final String username , final String password ,
8186 final OkHttpClient .Builder client ) {
87+ checkUrl (url );
8288 return connect (url , username , password , client , ResponseFormat .JSON );
8389 }
8490
@@ -103,6 +109,25 @@ public static InfluxDB connect(final String url, final String username, final St
103109 Preconditions .checkNonEmptyString (url , "url" );
104110 Preconditions .checkNonEmptyString (username , "username" );
105111 Objects .requireNonNull (client , "client" );
112+ checkUrl (url );
106113 return new InfluxDBImpl (url , username , password , client , responseFormat );
107114 }
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+ }
108133}
0 commit comments