11package org .iot .dsa .dslink .restadapter ;
22
3-
4- import java .net .CookieManager ;
5- import java .net .CookiePolicy ;
6- import java .time .Duration ;
7- import org .iot .dsa .logging .DSLogger ;
8- import org .iot .dsa .node .DSMap ;
9- import org .iot .dsa .node .DSMap .Entry ;
3+
104import okhttp3 .HttpUrl ;
115import okhttp3 .JavaNetCookieJar ;
126import okhttp3 .MediaType ;
137import okhttp3 .OkHttpClient ;
148import okhttp3 .Request ;
159import okhttp3 .RequestBody ;
1610import okhttp3 .Response ;
11+ import org .iot .dsa .logging .DSLogger ;
12+ import org .iot .dsa .node .DSMap ;
13+ import org .iot .dsa .node .DSMap .Entry ;
14+
15+ import java .net .CookieManager ;
16+ import java .net .CookiePolicy ;
17+ import java .util .concurrent .TimeUnit ;
1718
1819public class WebClientProxy extends DSLogger {
20+
1921 private CredentialProvider credentials ;
20- private Duration readTimeout = null ;
21- private Duration writeTimeout = null ;
22+ private long readTimeout = - 1 ;
23+ private long writeTimeout = - 1 ;
2224
2325 private OkHttpClient client ;
2426
2527 public WebClientProxy (CredentialProvider credentials ) {
2628 this .credentials = credentials ;
2729 }
28-
29- public WebClientProxy (CredentialProvider credentials , long readTimeoutMillis , long writeTimeoutMillis ) {
30+
31+ public WebClientProxy (CredentialProvider credentials , long readTimeoutMillis ,
32+ long writeTimeoutMillis ) {
3033 this (credentials );
31- this .readTimeout = Duration . ofMillis ( readTimeoutMillis ) ;
32- this .writeTimeout = Duration . ofMillis ( writeTimeoutMillis ) ;
34+ this .readTimeout = readTimeoutMillis ;
35+ this .writeTimeout = writeTimeoutMillis ;
3336 }
3437
3538// public static WebClientProxy buildNoAuthClient() {
@@ -47,14 +50,16 @@ public WebClientProxy(CredentialProvider credentials, long readTimeoutMillis, lo
4750// public static WebClientProxy buildPasswordFlowOAuth2Client(String username, String password, String clientID, String clientSecret, String tokenURL) {
4851// return new WebClientProxy(username, password, clientID, clientSecret, tokenURL, Util.AUTH_SCHEME.OAUTH2_USR_PASS);
4952// }
50-
51- public Request .Builder prepareInvoke (String httpMethod , String address , DSMap urlParameters , Object body ) {
53+
54+ public Request .Builder prepareInvoke (String httpMethod , String address , DSMap urlParameters ,
55+ Object body ) {
5256 prepareClient ();
5357 Request .Builder requestBuilder = prepareRequest (address , urlParameters );
54- requestBuilder .method (httpMethod , body == null ? null : RequestBody .create (MediaType .parse ("application/json" ), body .toString ()));
58+ requestBuilder .method (httpMethod , body == null ? null :
59+ RequestBody .create (MediaType .parse ("application/json" ), body .toString ()));
5560 return requestBuilder ;
5661 }
57-
62+
5863 public Response completeInvoke (Request .Builder requestBuilder ) {
5964 Request request = requestBuilder .build ();
6065 Response response = null ;
@@ -65,17 +70,17 @@ public Response completeInvoke(Request.Builder requestBuilder) {
6570 }
6671 return response ;
6772 }
68-
73+
6974
7075 public Response invoke (String httpMethod , String address , DSMap urlParameters , Object body ) {
7176 Request .Builder requestBuilder = prepareInvoke (httpMethod , address , urlParameters , body );
7277 return completeInvoke (requestBuilder );
7378 }
74-
79+
7580 private Request .Builder prepareRequest (String address , DSMap urlParameters ) {
7681 HttpUrl .Builder urlBuilder = HttpUrl .parse (address ).newBuilder ();
7782
78- for (Entry entry : urlParameters ) {
83+ for (Entry entry : urlParameters ) {
7984 Object value = Util .dsElementToObject (entry .getValue ());
8085 urlBuilder .addQueryParameter (entry .getKey (), value .toString ());
8186 }
@@ -85,13 +90,13 @@ private Request.Builder prepareRequest(String address, DSMap urlParameters) {
8590 .addHeader ("Content-Type" , "application/json" );
8691 return requestBuilder ;
8792 }
88-
93+
8994 private void prepareClient () {
9095 if (client == null ) {
91- client = configureAuthorization ();
96+ client = configureAuthorization ();
9297 }
9398 }
94-
99+
95100// private static int responseCount(Response response) {
96101// int result = 1;
97102// while ((response = response.priorResponse()) != null) {
@@ -116,41 +121,43 @@ private OkHttpClient configureAuthorization() {
116121// return response.request().newBuilder().header("Authorization", credential).build();
117122// }
118123// });
119- clientBuilder .addInterceptor (new BasicAuthInterceptor (credentials .getUsername (), credentials .getPassword ()));
124+ clientBuilder .addInterceptor (new BasicAuthInterceptor (credentials .getUsername (),
125+ credentials .getPassword ()));
120126 break ;
121127 case OAUTH2_CLIENT :
122128 case OAUTH2_USR_PASS :
123129 clientBuilder .addInterceptor (new OAuthInterceptor (this ));
124130// client.header(HttpHeaders.AUTHORIZATION, authManager.createAuthorizationHeader());
125131 break ;
126132 }
127- if (readTimeout != null ) {
128- clientBuilder .readTimeout (readTimeout );
133+ if (readTimeout > 0 ) {
134+ clientBuilder .connectTimeout (readTimeout , TimeUnit .MILLISECONDS );
135+ clientBuilder .readTimeout (readTimeout , TimeUnit .MILLISECONDS );
129136 }
130- if (writeTimeout != null ) {
131- clientBuilder .writeTimeout (writeTimeout );
137+ if (writeTimeout > 0 ) {
138+ clientBuilder .writeTimeout (writeTimeout , TimeUnit . MILLISECONDS );
132139 }
133140 CookieManager cookieManager = new CookieManager ();
134141 cookieManager .setCookiePolicy (CookiePolicy .ACCEPT_ALL );
135142 clientBuilder .cookieJar (new JavaNetCookieJar (cookieManager ));
136143 return clientBuilder .build ();
137144 }
138-
145+
139146 public OkHttpClient getClient () {
140147 if (client == null ) {
141148 prepareClient ();
142149 }
143150 return client ;
144151 }
145-
152+
146153 public String getUsername () {
147154 return credentials .getUsername ();
148155 }
149156
150157 public String getPassword () {
151158 return credentials .getPassword ();
152159 }
153-
160+
154161 public String getClientID () {
155162 return credentials .getClientId ();
156163 }
@@ -162,9 +169,9 @@ public String getClientSecret() {
162169 public String getTokenURL () {
163170 return credentials .getTokenURL ();
164171 }
165-
172+
166173 public Util .AUTH_SCHEME getScheme () {
167174 return credentials .getAuthScheme ();
168175 }
169-
176+
170177}
0 commit comments